СПОСОБ И АППАРАТУРА ДЛЯ ПОВЫШЕНИЯ НАДЕЖНОСТИ ПЕРЕДАЧИ ДАННЫХ В БЕСПРОВОДНЫХ СИСТЕМАХ СВЯЗИ
METHOD AND APPARATUS FOR INCREASING RELIABILITY OF TRANSMITTING DATA IN WIRELESS COMMUNICATION SYSTEMS

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0001] В общем случае настоящее изобретение относится к беспроводным связям, более конкретно к технологиям повышения надежности передачи данных.
УРОВЕНЬ ТЕХНИКИ
[0002] Множество систем беспроводной связи используют HARQ для повышения надежности передачи данных. При помощи HARQ каждый пакет данных может передаваться передатчиком один раз или многократно до тех пор, пока пакет не будет правильно декодирован приемником, или не будет передано максимальное число передач для этого пакета. HARQ объект в передатчике (который часто называют HARQ объектом передатчика) принимает пакеты, которым присвоены порядковые номера, кодирует каждый пакет в один или несколько подпакетов и передает эти подпакеты в последовательном порядке.
[0003] Соответствующий HARQ объект в приемнике (который часто называют HARQ объектом приемника) принимает передачи от передатчика и комбинирует подпакеты, которые принадлежат одному пакету. Затем комбинированные подпакеты для каждого переданного пакета декодируют при попытке восстановить переданный пакет.Однако из-за деградации, вызванной разрушительными эффектами в беспроводной линии связи, некоторые из принятых пакетов могут быть декодированы с ошибкой и называются уничтоженными пакетами. Приемник может послать передатчику подтверждение (ACK) для каждого правильно декодированного пакета, чтобы закончить дальнейшую передачу подпакетов для этого пакета и/или отрицательное подтверждение (NAK) для каждого уничтоженного пакета, чтобы начать передачу другого подпакета этого пакета. Передатчик может ошибочно принять ACK и/или NAK, посланный приемником. Каждый ACK, который ошибочно детектирован передатчиком как NAK, приводит к передаче другого подпакета для пакета, который уже был правильно декодирован приемником. Избыточная передача может быть правильно декодирована приемником, что приведет к дублированию пакета. Уровень ошибок для передач ACK может быть высоким и, следовательно, приемник может часто получать дублированные пакеты.
[0004] HARQ объект приемника также должен предоставлять корректно декодированные пакеты на верхние уровни. Во многих системах ожидается, что верхние уровни принимают данные в надлежащем порядке, как определено порядковыми номерами пакетов. Используя HARQ, несмотря на то, что HARQ объект передатчика посылает первые подпакеты в последовательном порядке, из-за дополнительных передач подпакетов для уничтоженных пакетов HARQ объект приемника может восстанавливать пакеты в произвольном порядке. В результате HARQ объект приемника обычно буферизует пакеты, которые были правильно декодированы, переупорядочивает эти пакеты по мере необходимости и верхним уровням предоставляет переупорядоченные пакеты. Если пакеты восстановлены в произвольном порядке, то HARQ объект приемника может “остановить” или задержать доставку на верхние уровни корректно декодированных пакетов всякий раз при детектировании отсутствия более ранних пакетов пока либо (1) недостающие пакеты не будут правильно декодированы HARQ объектом приемника, либо (2) HARQ объект приемника не будет уверен, что недостающие пакеты потеряны и не будут приняты. Если HARQ объект приемника объявляет, что пакет потерян, хотя это не так, то верхние уровни могут (1) инициировать повторную передачу потерянного пакета, несмотря на длинную задержку, или (2) рассматривать пакет, как потерянный, но оба варианта нежелательны.
[0005] В простой схеме переупорядочивания приемник хранит каждый корректно декодированный пакет в буфере до тех пор, пока не истечет максимальная продолжительность времени для передачи всех более ранних пакетов. Затем по истечении этой максимальной продолжительности времени приемник предоставляет корректно декодированный пакет верхним уровням с уверенностью, что любые более ранние пакеты, которые все еще отсутствуют, не будут приняты. Однако для этой простой схемы переупорядочивания задержка доставки пакетов верхним уровням может быть чрезмерно длинной.
[0006] Поэтому в данной области техники существует потребность в эффективном выполнении детектирования дублирования и переупорядочивания при HARQ передаче.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
априори
[0007] В данном разделе описаны способы выполнения детектирования дублирования и переупорядочивания при HARQ передаче. В синхронной HARQ системе при HARQ передаче используется множество ARQ каналов, и при HARQ передаче и передатчику, и приемнику  известно время, в которое происходит передача по каждому ARQ каналу. В асинхронной HARQ системе время между последующими передачами подпакетов по тому же самому ARQ каналу является переменным и определяется объектом планирования, исходя из канала и/или других особенностей. Если объект планирования находится в передатчике, что обычно имеет место в восходящей линии связи (или нисходящей линии связи), то для сообщения приемнику времени, в которое каждый ARQ канал совершает передачу, может использоваться надежный механизм управления. В системе с полностью запланированной нисходящей линией связи (или восходящей линией связи) объект планирования находится в приемнике, который в этом случае знает время, в которое происходит передача по каждому ARQ каналу. И для синхронных, и для асинхронных HARQ систем предполагается, что и передатчик, и приемник знают время, в которое происходит передача по каждому ARQ каналу.
[0008] В HARQ передаче передатчик принимает последовательность пакетов данных, которым можно назначить порядковые номера для указания их порядка в последовательности. Передатчик обрабатывает каждый пакет и генерирует множество подпакетов, которым назначает последовательно пронумерованные идентификаторы подпакета (SPID). Передатчик передает пакеты в последовательном порядке (на основе их порядковых номеров или в порядке прибытия из верхних уровней) по ARQ каналу, как только эти каналы становятся доступными. Каждый пакет посылают по одному ARQ каналу. Для каждого пакета подпакеты для этого пакета посылаются в последовательном порядке на основе их SPID, один подпакет за один раз, до тех пор, пока для пакета не будет принят ACK или не будут посланы все подпакеты.
x
у
x
у
у
ℓ
ℓ
у
ℓ
x
x
y
y
ℓ
y
y
ℓ
ℓ
[0009] Для детектирования дублирования приемник определяет, является ли данный корректно декодированный пакет  для данного ARQ канала  дублированным пакетом, основываясь на корректно декодированном пакете  и предшествующем корректно декодированном пакете для ARQ канала . После получения предшествующего корректно декодированного пакета приемник присваивает непредусмотренному SPID для ARQ канала  значение SPID  последнего подпакета, принятого для предшествующего корректно декодированного пакета, плюс один, то есть непредусмотренный SPID=+1. Непредусмотренный SPID представляет собой SPID для подпакета, прием которого не ожидается по ARQ каналу . Например, приемник может послать ACK для предшествующего корректно декодированного пакета, который может быть ошибочно детектирован передатчиком как NAK, который может затем передать следующий подпакет со SPID +1. Приемник получает SPID последнего подпакета, принятого для корректно декодированного пакета , сравнивает SPID этого подпакета c непредусмотренным SPID и объявляет, что пакет  является дублированным пакетом, если два SPID совпадают.Приемник увеличивает непредусмотренный SPID каждый раз, когда по ARQ каналу  может быть послан подпакет таким образом, чтобы непредусмотренный SPID отслеживал SPID подпакета, прием которого не ожидается по ARQ каналу . Такое увеличение происходит, даже если приемник не детектировал передачу. Например, приемник может декодировать пакет со значением SPID= на ARQ канале  и послать ACK, который ошибочно детектируется передатчиком как NAK. Приемник не сможет детектировать по ARQ каналу  последующую передачу подпакета SPID=+1, но сможет детектировать передачу после того, как SPID приобретет значение +2. Путем постоянного увеличения непредусмотренного SPID гарантируется, что приемник будет всегда детектировать дублированные пакеты, даже если он не обнаружит некоторые подпакеты.
x
y
x
x
z
z
z
x
[0010] Для переупорядочивания приемник получает корректно декодированный пакет  для ARQ канала , определяет, ожидается ли все еще на любом другом ARQ канале более ранний пакет на основе предшествующих корректно декодированных пакетов (если это имеет место) для ARQ каналов, и перенаправляет пакет  в верхние уровни только в случае, если не ожидаются более ранние пакеты. Каждый ожидаемый более ранний пакет представляет собой пакет, который был послан перед пакетом  и который все еще может быть принят.На другом ARQ канале  отсутствуют какие-либо ожидаемые более ранние пакеты, если (1) корректно декодированный пакет был принят по ARQ каналу  в течение заданного времени или позже,или (2) из текущего кадра в пределах временного окна не был принят корректно декодированный пакет по ARQ каналу . Заданное время для пакета  определяется временем начала и номерами ARQ каналов, доступных для HARQ передачи. Для синхронного HARQ временное окно определяется максимальным количеством подпакетов для каждого пакета и количеством ARQ каналов. Для асинхронного HARQ в запланированной системе объекту планирования известно временное окно для передачи по каждому ARQ каналу.
[0011] Ниже более подробно описаны различные аспекты и варианты осуществления настоящего изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0012] На ФИГ.1 показана обработка пакета для HARQ систем.
[0013] На ФИГ.2 показана синхронная HARQ передача по одному ARQ каналу.
[0014] На ФИГ.3А показана синхронная HARQ передача по четырем ARQ каналам;
[0015] На ФИГ.3B показан буфер данных для HARQ передачи, приведенной на ФИГ.3А;
[0016] На ФИГ.4 показана обработка выполнения детектирования дублирования;
[0017] На ФИГ.5A и 5B показаны два состояния определения, ожидается ли все еще более ранний пакет по другому ARQ каналу;
[0018] На ФИГ.6 показана процедура переупорядочивания пакетов;
[0019] На ФИГ.7 показана процедура определения, есть или нет ожидаемые более ранние пакеты;
[0020] На ФИГ.8 показана процедура обработки принятых пакетов для HARQ передачи;
[0021] На ФИГ.9 показана процедура переупорядочивания и перенаправления пакетов в верхние уровни;
[0022] На ФИГ.10 показана процедура HARQ передачи, приведенной на ФИГ.3А; и
[0023] На ФИГ.11 показана блок-схема беспроводного устройства и базовой станции.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0024] Слово “иллюстративный” в настоящем описании имеет значение “служить примером, случаем или иллюстрацией”. Любой вариант осуществления, описанный в настоящем описании как “иллюстративный”, не обязательно следует рассматривать как более предпочтительный или выгодный, чем другие варианты осуществления.
[0025] Описанные в настоящем описании способы детектирования дублирования и переупорядочивания могут использоваться для различных систем связи, таких как система Множественного Доступа с Кодовым Разделением Каналов (CDMA), система Множественного Доступа с Временным Разделением Каналов (TDMA), система Множественного Доступа с Частотным Разделением Каналов (FDMA), Множественный Доступ с Ортогональным Частотным Разделением Каналов (OFDMA), Ультраширокополосная Система (UWB) и т.д. Система CDMA может быть реализована в виде cdma2000, широкополосная-CDMA (W-CDMA) или в виде некоторых других способов радио доступа (RAT) CDMA. Система TDMA может быть реализована в виде Глобальной Системы Мобильной Связи (GSM) или в виде любой другой RAT. Система OFDM может быть реализована в виде IEEE 802.11, IEEE 802.16 или IEEE 802.20. Система UWB может быть реализована в виде 802.15. cdma2000 IS-95, IS-2000 и IS-856 и описана в документах от консорциума, названного “Проект Партнерства 3-его Поколения 2” (3GPP2). W-CDMA и GSM описаны в документах консорциума, названного “Проект Партнерства 3-его Поколения” (3GPP). 3GPP и 3GPP2 - документы являются доступными. Способы детектирования дублирования и переупорядочивания также могут использоваться для восходящей линии связи (или нисходящей линии связи) и нисходящей линии связи (или восходящей линия связи). Для ясности эти способы описаны для нисходящей линии связи в cdma2000 версии D.
[0026] На Фиг.1 показана обработка пакета для HARQ системы. Беспроводное устройство обрабатывает каждый пакет данных с целью генерации закодированного пакета и дальнейшего разделения закодированного пакета на три подпакета. Пакетам данных/кодированным пакетам назначают последовательные порядковые номера и маркируют как Pac0, Pac1, Pac2 и т.д., см. Фиг.1. Этим трем подпакетам для каждого кодированного пакета назначают идентификаторы подпакета (SPID) '0', '1' и '2' и на Фиг.1 маркируют как SP0, SP1 и SP2. Каждый подпакет содержит достаточную информацию, чтобы позволить принимающей базовой станции при благоприятных условиях декодировать подпакет канала и восстановить пакет.Три подпакета каждого пакета содержат различную избыточную информацию для данного пакета. Три подпакета для некоторого пакета могут рассматриваться как различные версии данного пакета или различные передачи данного пакета.
[0027] Закодированные пакеты начинают передавать в последовательном порядке. Таким образом, самый ранний пакет 0 (Pac0) передается перед пакетом 1 (Pac1), который передается перед пакетом 2 (Pac2), который передается перед пакетом 3 (РасЗ) и т.д. Для каждого пакета три подпакета передаются в последовательном порядке по одному и тому же ARQ каналу. Таким образом, подпакет 0 (SP0) передается первым, затем при необходимости следует подпакет 1 (SP1) и затем при необходимости следует подпакет 2 (SP2). Для каждого пакета могут быть переданы один, два или все три подпакета. Описанные выше обработка пакета и передача могут использоваться для каналов данных/трафика в различных системах, таких как, например, Нисходящий Канал Пакетных Данных (R-PDCH) в cdma2000 версия D. Для ясности конкретные детали описаны ниже для R-PDCH.
[0028] На Фиг.2 показана структура канала данных в синхронной HARQ системе. Время передачи для канала данных разделено на кадры, причем каждый кадр имеет фиксированную продолжительность (например, для R-PDCH в cdma2000 - 10 миллисекунд (ms)). В каждом кадре может быть послан один подпакет.Затем время передачи делят на четыре ARQ канала, которым назначают идентификаторы ARQ каналов (ACID) '0', '1', '2' и '3'. Четыре ARQ канала перемежаются таким образом, что ARQ канал 0 с ACID=0 занимает каждый четвертый кадр, начинающийся в заданном кадре, ARQ канал 1 с ACID=1 занимает каждый четвертый кадр сразу после ARQ канала 0, ARQ канал 2 с ACID=2 занимает каждый четвертый кадр сразу после ARQ канала 1, и ARQ канал 3 с ACID=3 занимает каждый четвертый кадр сразу после ARQ канала 2. Кадры, используемые для всех четырех ARQ каналов, определены, основываясь на системном времени (SYS_TIME), и известны беспроводному устройству и базовой станции. Четыре ARQ канала также называются ARQ и могут быть рассмотрены как четыре логических канала или четыре подканала канала данных в синхронной HARQ системе.
[0029] На ФИГ.2 также показана иллюстративная синхронная HARQ передача по одному ARQ каналу. Передается каждый пакет и возможно повторно передается по одному ARQ каналу. Для данного пакета беспроводное устройство сначала передает подпакет 0 в кадре для ARQ канала, затем подпакет 1 (если нужно) в следующем доступном кадре для того же ARQ канала и, наконец, подпакет 2 (если нужно) в следующем доступном кадре для ARQ канала. Поскольку принимается каждый подпакет, базовая станция пытается декодировать пакет, основываясь на всех подпакетах, которые были приняты для данного пакета. Если декодирование прошло успешно, то базовая станция посылает ACK по Восходящему Каналу Подтверждений (F-ACKCH), и беспроводное устройство прекращает посылать подпакеты этого пакета. Наоборот, если декодирование прошло неудачно, то базовая станция посылает NAK по F-ACKCH, и беспроводное устройство посылает следующий подпакет данного пакета. Задержка для передачи NAK или ACK представляет собой один кадр. В асинхронной HARQ системе передача каждого подпакета также происходит последовательно по одному и тому же ARQ каналу, но отсутствует какая-либо фиксированная продолжительность времени между последовательными передачами по одному и тому же ARQ каналу.
[0030] Для примера, показанного на Фиг.2, беспроводное устройство передает подпакет 0 пакета 0, который декодирован базовой станцией с ошибкой. Затем беспроводное устройство передает подпакет 1 пакета 0, который декодирован корректно, и следовательно посылает назад ACK. Затем беспроводное устройство передает подпакет 0 следующего пакета 1, который декодирован базовой станцией с ошибкой. Затем беспроводное устройство передает подпакет 1 пакета 1. Для других пакетов передача данных продолжается таким же образом.
[0031] Для ясности на Фиг.2 показана передача как NAK, так и ACK. С целью уменьшения количества передач сигналов многие системы посылают только ACK или только NAK. Для схемы, основанной на ACK, приемник передает ACK только в том случае, если пакет декодирован корректно, и не посылает никакой NAK. Таким образом, ACK посылается явным образом, а NAK является посланным неявно (т.е. предполагается в связи с отсутствием ACK или обозначается некоторыми другими способами). Для схемы, основанной на NAK, приемник посылает NAK только в том случае, если пакет декодирован с ошибкой, и не посылает ACK. Описанные в настоящем описании способы могут использоваться с любым видом обратной связи.
[0032] Приемник может определить, декодирован ли данный пакет корректно или с ошибкой, основываясь на ошибочном коде детектирования, используемом для данного пакета. Например, пакет декодирован корректно, если для пакета прошла проверка избыточности циклической суммы (CRC), и декодирован с ошибкой, если CRC не прошла. Как используется в настоящем описании, декодированный пакет представляет собой пакет, который приемником декодирован корректно (например, прошла CRC), а уничтоженный пакет представляет собой пакет, который декодирован приемником с ошибкой (например, CRC не прошла).
[0033] Как показано на Фиг.2, введены некоторые задержки для передачи подпакета, декодирования пакета и посылает назад ACK или NAK. Передачи подпакетов для каждого ARQ канала отделены четырьмя кадрами для учета задержки передачи и обработки. По четырем ARQ каналам беспроводное устройство может передавать параллельно до четырех пакетов. В любой данный момент может проходить до четырех ожидающих обработки пакетных передач. Каждая ожидающая обработки пакетная передача происходит для пакета, который не был опознан как декодируемый базовой станцией.
[0034] На Фиг.3А показана иллюстративная синхронная HARQ передача по всем четырем ARQ каналам. Беспроводное устройство посылает подпакет 0 пакетов 0, 1, 2 и 3 по ARQ каналам 0, 1, 2 и 3 соответственно, в кадрах 0, 1, 2 и 3 соответственно. Базовая станция принимает эти четыре подпакета, декодирует пакеты 0, 1 и 3 с ошибкой, а пакет 2 декодирует корректно. Затем беспроводное устройство передает подпакет 1 пакетов 0, 1 и 3 по ARQ каналам 0, 1 и 3 соответственно, в кадрах 4, 5 и 7 соответственно, а по ARQ каналу 2 в кадре 6 передает подпакет 0 следующего пакета 4. Базовая станция принимает подпакеты, декодирует пакеты 0 и 3 корректно, а пакеты 1 и 4 декодирует с ошибкой. Затем беспроводное устройство передает подпакет 0 следующего пакета 5 по ARQ каналу 0 в кадре 8, подпакет 2 пакета 1 по ARQ каналу 1 в кадре 9, подпакет 1 пакета 4 по ARQ каналу 2 в кадре 10 и подпакет 0 следующего пакета 6 по ARQ каналу 3 в кадре 11. Базовая станция принимает подпакеты, декодирует пакеты 1, 5 и 6 с ошибкой, а пакет 4 декодирует корректно. Затем беспроводное устройство передает подпакет 1 пакета 5 по ARQ каналу 0 в кадре 12, подпакет 0 следующего пакета 7 по ARQ каналу 1 в кадре 13, подпакет 0 следующего пакета 8 по ARQ каналу 2 в кадре 14 и подпакет 1 пакета 6 по ARQ каналу 3 в кадре 15. Беспроводное устройство передает новый пакет по ARQ каналу 1, даже если пакет 1 не был декодирован, так как для пакета 1 были посланы все три подпакета. Беспроводное устройство продолжает передавать новый пакет всякий раз, когда канал ARQ становится доступным.
[0035] На Фиг.3B показано содержимое буфера данных, используемого для хранения декодированных пакетов в базовой станции. Буфер данных обычно называют буфером переупорядочивания. Каждый декодированный пакет может временно храниться в буфере данных до тех пор, пока пакет не будет готов к его отправке на верхние уровни. На Фиг.3B показан каждый декодированный пакет и кадр, в котором был декодирован пакет. Пакет 2 был декодирован в кадре 2, пакет 0 был декодирован в кадре 4, пакет 3 был декодирован в кадре 7, пакет 4 был декодирован в кадре 10, пакет 5 был декодирован в кадре 12 и пакет 8 был декодирован в кадре 14. В кадре 9 было детектировано отсутствие пакета 1. Как показано на Фиг.3А и 3B, хотя беспроводное устройство передает пакеты, начиная в последовательном порядке, базовая станция восстанавливает пакеты в произвольной последовательности из-за дополнительных передач уничтоженных пакетов.
[0036] Для простоты, на Фиг.3А не принимаются ошибки детектирования для ACK и NAK, посланных базовой станцией в беспроводное устройство. Для каждого ACK, который детектирован как NAK, беспроводное устройство передает следующий подпакет пакета, который уже декодирован базовой станцией. Для каждого NAK, который детектирован как ACK, беспроводное устройство передает следующий пакет, даже если предшествующий пакет не был декодирован базовой станцией. Для достижения надежной передачи данных уровень ошибок NAK/ACK обычно является небольшим (например, 0,1%). Однако уровень ошибок ACK/NAK может быть высоким и переменным (например, от 1 до 10%). Базовая станция может принять дублированные пакеты из-за ошибок ACK/NAK.
[0037] Базовая станция может выполнять детектирование дублирования с целью идентификации и отказа от дублированных пакетов. Детектирование дублирования может выполняться, исходя из следующих предположений: (1) базовая станция (или приемник) имеет информацию об ARQ канале, посылаемую в каждом кадре, основываясь на синхронизации системы, (2) подпакеты для каждого пакета посылают в последовательном порядке, и (3) базовая станция может присвоить SPID подпакета только в случае декодирования пакета.
[0038] На Фиг.4 показана блок-схема процедуры 400 выполнения детектирования дублирования пакетов, принятых посредством HARQ передачи. Для каждого ARQ канала базовая станция поддерживает переменную Unexpected_SPID. Эта переменная указывает SPID подпакета, прием которого не ожидается на ARQ канале. В начале HARQ передачи для каждого ARQ канала базовая станция инициализирует Unexpected_SPID недостоверным значением (этап 410). Например, Unexpected_SPID может быть присвоено Max_Num_Tx, который представляет собой максимальное количество подпакетов для каждого пакета, где Max_Num_Tx=3 для R-PDCH в cdma2000 версии D. На этапе 410 для HARQ передачи инициализация выполняется один раз.
y
k
[0039] Базовая станция выполняет детектирование дублирования для каждого кадра при передаче. Базовая станция определяет ARQ канал для текущего кадра (который называют ARQ канал ), основываясь на его информации о системном времени (этап 420). Затем базовая станция пытается декодировать пакет для текущего кадра (этап 422). Далее происходит определение того, был ли пакет декодирован (этап 424). Если пакет был декодирован, то базовая станция получает SPID из подпакета, принятого в текущем кадре (который называют SPID ) (этап 426). В cdma2000 версии D каждый подпакет несет SPID, назначенный для подпакета, но базовая станция может достоверно установить SPID, только если пакет декодирован.
y
y
у
к
у
к
x
y
k
к
x
к
[0040] Затем базовая станция определяет, равен ли SPID значению Unexpected_SPID для ARQ канала  (этап 428). Если для ARQ канала  SPID не равен Unexpected_SPID, что имело бы место для первого пакета, посланного по ARQ каналу , поскольку Unexpected_SPID инициализировался недостоверной величиной, то Unexpected_SPED присваивается значение +1 (этап 432). Для ARQ канала  базовая станция не ожидает приема подпакета со значением SPID +1 в следующем кадре, так как пакет  уже декодирован. Если в следующем кадре для ARQ канала  принят подпакет со значением SPID +1, то этот подпакет должен был быть послан из-за ошибки ACK/NAK и является дублированным пакетом. Таким образом, возвращаясь на этап 428, если SPID  равен Unexpected_SPID, то пакет  объявляется дублированным пакетом и от него отказываются (этап 430). После этапа 430 Unexpected_SPID присваивается значение +1 (этап 432).
у
у
[0041] Если для текущего кадра пакет был уничтожен, как определено на этапе 424, то происходит определение, является ли для ARQ канала  значение Unexpected_SPID недостоверным (например, равным Max_Num_Tx) (этап 434). Если ответом является 'Нет', то для ARQ канала  базовая станция увеличивает значение Unexpected_SPID на один (этап 436). Если на этапе 434 и после этапа 436 ответом является 'Да', процедура возвращается на этап 420 для обработки следующего кадра.
[0042] Детектирование дублирования по Фиг.4 присваивает значение Unexpected_SPID, основываясь на SPID последнего подпакета, принятого для декодированного пакета. Детектирование дублирования увеличивает на этапе 436 значение Unexpected_SPID на единицу (1) всякий раз при приеме уничтоженного пакета, поскольку подпакеты посылают в последовательном порядке, и (2) если значение Unexpected_SPID не достигает Max_Num_Tx и не является недостоверной величиной, присвоенной на этапе 410. Если значение Unexpected_SPID достигает на этапе 436 значения Max_Num_Tx, то значение Unexpected_SPID может быть сохранено со значением Max_Num_Tx или установлено в некоторую другую недостоверную величину. Детектирование дублирования также может быть выполнено другими способами, исходя из данного описания.
[0043] Как показано на Фиг.3А и 3B, HARQ объект приемника в базовой станции может восстанавливать пакеты в произвольной последовательности, даже если пакеты были посланы последовательно. Для уменьшения задержки является желательным, перенаправлять каждый декодированный пакет в верхние уровни как можно скорее. Однако если верхние уровни ожидают приема пакетов в последовательном порядке, то HARQ объект приемника обычно буферизует декодированные пакеты, переупорядочивает пакеты, которые не являются последовательными, и затем предоставляет переупорядоченные пакеты верхним уровням.
x
x
x
b
x
b
x
b
x
b
x
b
b
x
[0044] Для данного декодированного пакета  базовая станция может перенаправлять пакет  верхним уровням при отсутствии пакета, который был послан перед пакетом  и все еще может быть принят. Другой пакет  посылают перед пакетом , если передача пакета  началась перед передачей пакета . Если пакеты посылают в последовательном порядке, то, если бы другой пакет  был послан перед пакетом , пакет  должен был быть перенаправлен в верхние уровни до пакета , в случае если верхние уровни ожидают приема пакетов в последовательном порядке. Если пакет  не декодирован после максимально возможного количества повторных ARQ передач, то пакет  является потерянным, и пакет  может быть перенаправлен в верхние уровни.
x
x
[0045] Для каждого ARQ канала базовая станция может поддерживать флаг и может сбрасывать этот флаг для пакета , если по ARQ каналу нет никаких ожидаемых более ранних пакетов. Ожидаемый более ранний пакет представляет собой пакет, который был послан по ARQ каналу перед пакетом  и который все еще может быть принят базовой станцией. Базовая станция может перенаправить пакет x в верхние уровни, если для всех ARQ каналов сброшены флаги. В Таблице 1 представлены различные переменные, используемые в приведенном ниже описании, и для каждой переменной дано краткое описание. Для R-PDCH в cdma2000 в третьей колонке Таблицы 1 для некоторых из переменных приведены значения по умолчанию.
Таблица 1
Переменная
Описание
Значение по умолчанию
Num_Channels
Номер ARQ канала, доступного для передачи данных
4
Max_Num_Tx
Максимальное количество подпакетов для каждого пакета
3
Max_Wait
Максимальное количество времени (в кадрах) ожидания для пакета на другом ARQ канале
8 кадров
Current_Frame
Текущий обрабатываемый кадр
Start_Time
Время первой передачи пакета. Start_Time поддерживается для каждого пакета и задается в единицах кадров.
Last_Decode_Time
Время последнего приема декодированного пакета по ARQ каналу. Last_Decode_Time поддерживается для каждого ARQ канала и задается в единицах кадров.
[0046] В синхронном HARQ значение Max_Wait может быть вычислено следующим образом:
Max_Wait=Num_Channels x (Max_Num_Tx-1).
уравнение (1)
Max_Wait=8 кадров для R-PDCH в cdma2000 версии D. В R-PDCH для синхронного HARQ возможно наличие автономных передач.
[0047] В асинхронном HARQ по R-PDCH может быть запланирована каждая передача. Max_Wait для ARQ канала представляет собой время между первой и последней передачей подпакета по данному ARQ каналу и может иметь переменную продолжительность. Приемнику известно значение Max_Wait для каждого ARQ канала, если объект планирования находится в приемнике. Это верно для полностью запланированных нисходящих линий связи, таких как IEEE 802.16. Если объект планирования находится в передатчике, то для ARQ канала может быть определено значение Max_Wait, если передатчик имеет надежный способ передачи в приемник подпакета и идентификатора ARQ канала.
z
z
z
[0048] Для каждого ARQ канала , где ∈С, и С обозначает набор всех ARQ каналов, базовая станция может сбросить флаг для ARQ канала , если будет соблюдено любое из следующих двух условий:
z
x
z
x
1. Пакет был послан по ARQ каналу  после Start_Time для пакета  или, что эквивалентно, значение Last_Decode_Time для ARQ канала  больше, чем значение Start_Time для пакета  минус значение Num_Channels;
z
x
2. По меньшей мере, (Max_Num_Tx-1) подпакетов были посланы по ARQ каналу , начиная со значения Start_Time для пакета .
Для незапланированной, но синхронной HARQ передачи количество подпакетов, которое было послано по ARQ каналу, может быть определено по времени, прошедшему начиная с последнего декодирования. Для запланированной HARQ передачи как синхронной, так и асинхронной приемник знает, что подпакет является запланированным. В этом случае приемник знает, когда по каждому ARQ каналу посылают (Max_Num_Tx-1).
[0049] Для синхронного HARQ, где каждый следующий подпакет передают по ARQ каналу после фиксированной задержки, условия 1 и 2 подробно описаны ниже. Это уменьшает время на описание приведенного ниже алгоритма. Алгоритм также может использоваться для асинхронного HARQ, если приемник знает значение Start_Time каждого ARQ канала.
x
у
z
z
x
z
x
z
x
у
x
[0050] На Фиг.5A показан сброс флагов для ARQ каналов, основываясь на первом условии. Для примера, показанного на Фиг.5A, пакет  посылают по ARQ каналу -1, начиная в Start_Time, показанном на Фиг.5A, и декодируется в текущем кадре. Все кадры, начинающиеся после Start_Time-4 (которое представляет собой заданное время и равно Start_Time-Num_Channels) до текущего кадра, показаны диагональной штриховкой. Если бы пакет для какого-нибудь ARQ канала  был декодирован в любом из кадров со штриховкой, то любой пакет, который мог быть послан после этого декодированного пакета по тому же ARQ каналу , имел бы время начала больше, чем Start_Time для пакета . Следовательно, этот ARQ канал  не может нести более ранний пакет, чем пакет , и флаг для этого ARQ канала  может быть сброшен. Включение кадра Start_Time-4 для первого условия является дополнительным для декодирования пакета  во время разрешения сброса флага для ARQ канала  для пакета .
x
у
x
z
x
x
x
x
x
z
z
x
[0051] На Фиг.5B показан сброс флагов для ARQ каналов, исходя из второго условия. Для примера, показанного на Фиг.5B, Max_Num_Tx=3 и для каждого пакета посылают до трех подпакетов. Пакет  посылают по ARQ каналу =1, начиная при Start_Time, показанном на Фиг.5B, и корректно декодируется в кадре Tc-3, который для пакета  находится через четыре кадра после Start_Time. ARQ канал , который для пакета  нес Max_Num_Tx-1 подпакеты, начиная с Start_Time, не может нести пакет, который был послан для пакета  перед Start_Time. Например, ARQ канал z=2 несет подпакет в кадре Tc-2, который находится за два кадра перед текущим кадром, и другой подпакет в кадре Tc-6, который находится за шесть кадров перед текущим кадром. Для пакета  оба подпакета посылают по ARQ каналу 2 после Start_Time. После обработки подпакета для ARQ канала 2 в кадре Tc-2 нельзя, чтобы ARQ канал 2 все еще нес пакет, который для пакета  был послан перед Start_Time. Так происходит, поскольку, если для пакета  по ARQ каналу 2 перед Start_Time был бы послан пакет, то этот пакет необходимо было бы посылать, начиная с кадра Tc-10 и заканчивая в кадре Tc-2, независимо от того, был ли пакет декодирован или уничтожен, потому что для этого пакета было послано максимальное количество подпакетов. Для второго условия для каждого ARQ канала  может быть сброшен флаг, если в пределах последних кадров Num_Wait, начиная от текущего кадра, который может быть рассмотрен как скользящее временное окно, для ARQ канала  никакой пакет не был декодирован. Вышеупомянутый пример также может быть применен, если пакет  был декодирован в кадре Tc-7, а не в кадре Тс-3.
y
x
x
x
x
x
x
x
x
[0052] На Фиг.6 показана блок-схема процедуры 600 переупорядочивания пакетов, принятых посредством HARQ передачи. При передаче базовая станция выполняет переупорядочивание каждого кадра. Базовая станция определяет ARQ канал для текущего кадра (который назван ARQ канал ) (этап 620). Затем базовая станция пытается декодировать пакет  для текущего кадра (этап 622). Затем происходит определение, был ли декодирован пакет  (этап 624). Если пакет  был декодирован, то базовая станция определяет, был ли перед пакетом  послан другой пакет по другому ARQ каналу, и можно ли его еще принять, т.е. есть ли более ранний пакет, который все еще ожидается на другом ARQ канале (этап 626). Если ожидается более ранний пакет, и базовая станция должна ждать этот пакет, как определено на этапе 628, то базовая станция хранит пакет  в буфере данных (этап 632). В противном случае, если более ранние пакеты не ожидаются, то базовая станция перенаправляет пакет  и/или все пакеты, которые были декодированы, и ждет пакет  (этап 630). Возможны случаи, когда пакет x не может быть перенаправлен, но декодирование пакета  позволяет другим пакетам ожидать перенаправления в буфере данных. Затем процедура возвращается на этап 620 для обработки следующего кадра.
x
i
i
x
i
i
x
i
i
i
[0053] На Фиг.7 показана блок-схема варианта осуществления этапа 626 по Фиг.6. Сначала вычисляется Start_Time для пакета , как описано ниже (этап 710), и для всех ARQ каналов флаги установлены в логическую единицу (этап 712). Индекс  для ARQ каналов устанавливается в ноль для первого ARQ канала, который был оценен (этап 714). Затем происходит определение, был ли принят по ARQ каналу  пакет , который был декодирован в текущем кадре (этап 720). Если на этапе 720 ответом является 'Да', то флаг для ARQ канала  сбрасывается (этап 726). В противном случае происходит определение, был ли для ARQ канала  получен декодированный пакет после Start_Time-Num_Channels, где Start_Time представляет собой время начала для пакета  (этап 722). Если на этапе 722 ответом является 'Да', то флаг для ARQ канала  сбрасывается (этап 726). В противном случае происходит определение, не был ли получен какой-либо декодированный пакет для ARQ канала  в последних кадрах Max_Wait-1 (этап 724). Если на этапе 724 ответом является 'Да', то флаг для ARQ канала  сбрасывается (этап 726).
x
x
[0054] Этапы 720 и 722 представляют собой первое условие, описанное выше по Фиг.5A, которые для ясности на Фиг.7 показаны как два отдельных этапа. Этап 724 представляет собой второе условие, описанное выше по Фиг.5B, если ответом является 'Нет' на всех трех этапах 720, 722, и 724, то, по меньшей мере, имеется один ожидаемый пакет, который был послан перед пакетом  и который все еще может быть принят.Затем предоставляется индикатор того, что пакет  ожидает другой пакет (этап 734), при этом обработка для этапа 626 заканчивается.
i
x
[0055] Если флаг для ARQ канала  сбрасывается на этапе 726, поскольку в этом ARQ канале не ожидается никакой более ранний пакет, то происходит определение, были ли оценены все ARQ каналы (этап 728). Если ответом является 'Нет', то индекс увеличивается (этап 730), и процедура возвращается на этап 720 для оценки следующего ARQ канала. В противном случае, если на этапе 728 ответом является 'Да', это означает, что флаги для всех ARQ каналов были сброшены, предоставляется индикатор того, что пакет  может быть перенаправлен в верхние уровни (этап 732), и при этом обработка для этапа 626 заканчивается.
[0056] Ниже описан конкретный вариант осуществления обработки пакетов и выполнения переупорядочивания. Для этого варианта осуществления для каждого ARQ канала поддерживается и используется единственная переменная Last_Decode_Time для оценки как условия 1, так и условия 2 для ARQ канала. Last_Decode_Time для каждого ARQ канала указывает кадр, в котором декодированный пакет был последним полученным для ARQ канала, и присваивается текущему кадру (или Current_Frame) всякий раз, когда по ARQ каналу получают декодированный пакет.Last_Decode_Time для каждого ARQ канала также устанавливают таким образом, чтобы оно было меньше, чем Current_Frame-Max_Wait всякий раз, когда обрабатывается ARQ канал с тем, чтобы при помощи той же самой переменной можно было оценить условие 2. В начале HARQ передачи Last_Decode_Time для ARQ каналов 0, 1, 2 и 3 инициализируют значениями First_Frame-4, First_Frame-3, First_Frame-2 и First_Frame-1 соответственно, где First_Frame представляет собой кадр, в котором посылают самый первый подпакет для HARQ передачи.
у
x
x
x
у
x
x
[0057] На Фиг.8 показана блок-схема процедуры 800 обработки пакетов, принятых для HARQ передачи. Процедура 800 выполняется при передаче для каждого кадра. Базовая станция определяет ARQ канал для текущего кадра, который назван ARQ канал  (этап 820), декодирует пакет  для текущего кадра (этап 822) и определяет, был ли декодирован пакет  (этап 824). Если пакет  был декодирован, то базовая станция устанавливает Last_Decode_Time для ARQ канала  в Current_Frame (этап 826), определяет SPID подпакета, принятого в текущем кадре для пакета  (этап 828), и вычисляет Start_Time для пакета  (этап 830) следующим образом:
Start_Time=Current_Frame-Num_Channels x SPID уравнение (2)
x
x
Время начала для каждого пакета устанавливается, только в том случае, если пакет декодирован, и далее вычисляется, исходя из количества подпакетов, которые были переданы для пакета, указанного SPID для подпакета, принятого в текущем кадре для пакета . Затем сохраняют пакет  в буфере данных наряду с его Start_Time (этап 832).
x
у
у
[0058] Если пакет  был уничтожен, как определено на этапе 824, то базовая станция определяет, является ли Last_Decode_Time для ARQ канала  более ранним, чем Max_Wait из текущего кадра (этап 834). Если ответом является 'Да', то базовая станция устанавливает Last_Decode_Time для ARQ канала  (этап 836) следующим образом:
Last_Decode_Time=Current_Frame-Max_Wait
уравнение (3)
Если ответом является 'Нет' на этапе 834, а также после этапов 832 и 836, процедура заканчивается.
[0059] На Фиг.9 показана блок-схема процедуры 900 переупорядочивания и перенаправления пакетов в верхние уровни. Процедура 900 может выполняться после процедуры 800 и всякий раз при получении декодированного пакета по ARQ каналу. Переменную Earliest_Decode_Time устанавливают в самый ранний Last_Decode_Time среди всех ARQ каналов (этап 910).
z
z
z
[0060] Затем происходит определение, пустой ли буфер данных (этап 920). Если ответом является 'Да', то процедура заканчивается. В противном случае идентифицируют самый старый пакет, хранящийся в буфере данных (который назван пакетом ) (этап 922). Пакет  имеет самое раннее время начала среди всех пакетов, хранящихся в буфере данных. В буфере данных могут храниться декодированные пакеты, отсортированные на основе их времени начала. Например, пакет с самым старым временем начала может храниться вверху буфера, за которым следует пакет со следующим самым старым временем начала и т.д. В любом случае, получают Start_Time пакета  (этап 924).
z
z
z
x
[0061] Затем происходит определение, является ли Earliest_Decode_Time более поздним, чем Start_Time пакета  минус Num_Channels (этап 926). Как показано на Фиг.5A, если декодированный пакет был получен для другого ARQ канала  в кадре Start_Time-Num_Channels или позже, то ARQ канал  не несет ожидаемый более ранний пакет.Поскольку перенаправляется только пакет , если ни на каком ARQ канале нет никаких ожидаемых более ранних пакетов, то использование Earliest_Decode_Time эффективно оценивает условие 1 для всех ARQ каналов посредством одного сравнения на этапе 926. Кроме того, устанавливая для каждого ARQ канала Last_Decode_Time не позже, чем Current_Frame-Max_Wait на этапе 836 на Фиг.8, также условие 2 оценивают посредством сравнения на этапе 926.
z
z
[0062] Если на этапе 926 ответом является 'Да', что указывает на отсутствие каких-либо ожидаемых более ранних пакетов, то пакет  удаляют из буфера данных и перенаправляют в верхние уровни (этап 928). Затем процедура возвращается на этап 920 для оценки самого старого пакета (если имеется) в буфере данных. В противном случае, если на этапе 926 ответом является 'Нет', что указывает на наличие, по меньшей мере, одного ожидаемого более раннего пакета, пакет  сохраняют в буфере данных, и процедура завершается.
[0063] На Фиг.10 показана обработка иллюстративной HARQ передачи по Фиг.3А при помощи процедур 800 и 900 по Фиг.8 и 9 соответственно. Первая передача подпакета происходит в кадре 0, и в начале HARQ передачи Last_Decode_Time для ARQ каналов 0, 1,2 и 3 инициализируется как -4, -3, -2 и -1 соответственно. Last_Decode_Time для каждого ARQ канала обновляется всякий раз, когда обрабатывается ARQ канал. Это обновление влечет за собой установку Last_Decode_Time в (1) текущий кадр, если для ARQ канала получен декодированный пакет, что имеет место для кадров 2, 4, 7, 10, 12 и 14 на Фиг.10, и (2) текущий кадр минус Max_Wait, если Last_Decode_Time больше значения, которое имеет место для кадров 9, 13 и 15. Базовая станция переупорядочивает и перенаправляет пакеты всякий раз при получении декодированного пакета, например, в кадрах 2, 4, 7, 9, 10, 12, 13 и 14 на Фиг.10. Для каждого кадра с декодированным пакетом на Фиг.10 показано (1) Earliest_Decode_Time, вычисленное для кадра, (2) пакеты, сохраненные в буфере данных, и время начала для каждого сохраненного пакета, которое приведено в круглых скобках, и (3) пакеты, если таковые вообще имеются, которые перенаправлены в верхние уровни. Для примера, показанного на Фиг.10, в кадре 10 поддерживается пакет 4, поскольку на ARQ канале 1 не был декодирован пакет.Если номер последовательности пакета доступен для переупорядочивания, то пакет 4 может быть перенаправлен, если пакет 3 уже был перенаправлен.
[0064] Ниже приведены иллюстративные псевдокоды для процедур 800 и 900 на Фиг.8 и 9 соответственно.
Обновление переменных:
100 If (CRC for Packetx on ACIDy passes) Then {
110 Last_Decode_Time[ACIDy]=Sys_Time;
120 Start_Time[Packetx]=Sys_Time - 4*SPID[Packetx];
130 Put Packetx in Buffer sorted based on
increasing values of packet Start_Time; }
140 Else {
150 Last_Decode_Time[ACIDy]=max (Last_Decode_Time[ACIDy],
Sys_Time - 4*(Max_Num_Tx-l)); }
Переупорядочивание и перенаправление пакетов;
200 eva1_next_packet=true;
210 Earliest_Decode_Time=min{Last_Decode__Time[ACID0],
Last_Decode_Time[ACID1], Last_Decode_Time[ACID2],
Last_Decode_Time[ACID3]};
220 While ((eva1_next_packet=true) && (Buffer not empty)) do
230 {
240 Next_Packet=Get oldest packet from Buffer
250 If (Earliest_Decode_Time>Start_Time[Next_Packet] - 4)
260 Then forward Next_Packet to upper layers
270 Else eva1_next_packet=false;
280 }
[0065] На Фиг.11 показана блок-схема варианта осуществления беспроводного устройства 1110 и базовой станции 1150 в системе беспроводной связи. Беспроводное устройство также может быть названо мобильной станцией, терминалом пользователя/доступа, пользовательским оборудованием, телефонной трубкой, абонентским модулем или каким-либо другим термином. Базовая станция представляет собой фиксированную станцию и также может быть названа основной станцией приемопередатчика (BTS), пунктом доступа, узлом B или каким-либо другим термином.
[0066] В нисходящей линии связи устройство 1112 кодирования принимает данные трафика, чтобы послать беспроводному устройству 1110 для HARQ передачи, и обрабатывает каждый пакет данных для генерации соответствующего кодированного пакета. Затем устройство 1112 кодирования может разделить каждый кодированный пакет на множество подпакетов. Обработка устройством 1112 кодирования может включать в себя форматирование, кодирование, чередование и т.д., и определяется применяемым стандартом системы. Например, данные могут быть посланы по R-PDCH, и обработка может быть выполнена в соответствии с cdma2000 версии D. Модулятор 1114 (Mod) принимает подпакеты и обрабатывает каждый подпакет для передачи. Обработка модулятором 1114 может включать в себя отображение символа, канализацию, спектральное расширение и т.д., и также определяется применяемым стандартом системы. Блок 1116 передатчика (TMTR) обрабатывает выходные данные из модулятора 1114 и восстанавливает сигнал нисходящей линии связи, который пропускается удвоитель (D) 1118 и передается через антенну 1120.
[0067] В базовой станции 1150 антенной 1152 принимается сигнал нисходящей линии связи, пропускается через удвоитель 1154 и обрабатывается блоком 1156 приемника (RCVR) с целью восстановления принятых выборок. Затем демодулятор 1158 (Demod) обрабатывает (например, сужает, деканализирует и демодулирует данные) принятые выборки и предоставляет демодулированные символы. Декодер 1160 декодирует демодулированные символы для каждого пакета, посланного беспроводным устройством 1110, проверяет пакет, предоставляет статус пакета диспетчеру 1170 и предоставляет пакет (если он декодирован) буферу данных 1174. Обработка при помощи демодулятора 1158 и декодера 1160 в базовой станции 1150 является дополнительной к обработке при помощи модулятора 1114 и кодирующего устройства 1112 соответственно в беспроводном устройстве 1110.
[0068] Устройство 1112 кодирования и декодер 1160 выполняют обработку на физическом уровне. HARQ обычно реализуется на уровне Среднего Управления Доступом (MAC), который находится в верхней части физического уровня. В одном из вариантов осуществления устройство 1112 кодирования реализует HARQ объект передатчика, весь или частично, для HARQ передачи из беспроводного устройства 1110 к базовой станции 1150. Декодер 1160 реализует HARQ объект приемника, весь или частично, для HARQ передачи. В другом варианте осуществления диспетчер 1130 реализует HARQ объект передатчика, весь или частично, а контроллер 1170 реализует HARQ объект приемника, весь или частично. Например, декодер 1160 может предоставлять статус каждого принятого пакета и время декодирования для каждого декодированного пакета, а контроллер 1170 может выполнять детектирование дублирования, переупорядочивание и перенаправление декодированных пакетов в верхние уровни. Контроллер 1170 может дополнительно предоставлять соответствующую обратную связь ACK/NAK для каждого подпакета, принятого из беспроводного устройства 1110.
[0069] Для восходящей линии связи данные, которые должны быть посланы базовой станцией 1150, и ACK/NAK для беспроводного устройства 1110 обрабатываются (например, форматируются, кодируются и т.д.) устройством 1180 кодирования, дополнительно обрабатываются (например, канализируются, расширяются и т.д.) модулятором 1182 и нормализуют блоком 1184 передатчика для восстановления сигнала восходящей линии связи, который пропускают через удвоитель 1154 и передают через антенну 1152. В беспроводном устройстве 1110 сигнал восходящей линии связи, принятый антенной 1120, пропускают через удвоитель 1118 и обрабатывают при помощи блока 1140 приемника для восстановления входных выборок. Демодулятор 1142 обрабатывает входные выборки и предоставляет демодулированные символы, а декодер 1144 дополнительно обрабатывает демодулированные символы и предоставляет декодированные данные в буфер 1134 данных.
[0070] Контроллер 1130 принимает из декодера 1144 обратную связь ACK/NAK, посланную базовой станцией 1150, и направляет передачу подпакетов для уничтоженных и новых пакетов. Контроллеры 1130 и 1170 дополнительно управляют работой различных блоков обработки в беспроводном устройстве 1110 и базовой станции 1150 соответственно. Контроллеры 1130 и 1170 могут реализовывать все или часть способов детектирования дублирования и переупорядочивания, приведенных в настоящем описании для HARQ передачи по восходящей линии связи и нисходящей линии связи соответственно. Например, каждый контроллер может реализовывать процедуры, показанные на Фиг.4, 6, 7, 8 и 9. Блоки 1132 и 1172 памяти хранят коды программ и данные, используемые контроллерами 1130 и 1170 соответственно.
[0071] Для ясности, способы детектирования дублирования и переупорядочивания были описаны для R-PDCH в cdma2000 версии D. В общем случае эти технологии можно использовать для HARQ с любым количеством ARQ каналов, любым количеством подпакетов/передач для каждого пакета и т.д.
[0072] Способы детектирования дублирования и переупорядочивания, приведенные в настоящем описании, могут быть реализованы при помощи различных средств. Например, эти способы могут быть реализованы при помощи аппаратных средств, программных средств или их комбинацией. Для реализации при помощи аппаратных средств блоки обработки, выполняющие детектирование дублирования и/или переупорядочивание, могут быть реализованы в пределах одной или нескольких специализированных интегральных схем (ASIC), цифровых сигнальных процессоров (DSP), цифровых сигнальных обрабатывающих устройств (DSPD), программируемых логических устройств (PLD), программируемых вентильных матриц (FPGA), процессоров, контроллеров, микроконтроллеров, микропроцессоров, другие электронных блоков, разработанных для выполнения приведенных в данном описании функций, или их комбинации.
[0073] Для реализации при помощи программных средств способы детектирования дублирования и переупорядочивания могут быть реализованы при помощи модулей (например, процедур, функций и т.д.), которые выполняют раскрытые в настоящем описании функции. Коды программных средств могут храниться в блоке памяти (например, блоке 1132 или 1172 памяти на Фиг.11) и выполняться процессором (например, контроллером 1130 или 1170). Блок памяти может быть реализован в пределах процессора или вне процессора.
[0074] Вышеприведенное описание раскрытых вариантов осуществления предоставлено с целью обеспечения возможности любому специалисту в данной области техники выполнить или использовать настоящее изобретение. Различные модификации данных вариантов осуществления являются очевидными специалистам в данной области техники, и общие принципы, определенные в настоящем описании, могут быть применены к другим вариантам осуществления без отступления от сущности или объема настоящего изобретения. Таким образом, настоящее изобретение не ограничивается вариантами осуществления, раскрытыми в настоящем описании, но должно соответствовать самому широкому объему, совместимому с принципами и новыми признаками, раскрытыми в настоящем описании.