RU2710977C1 - Исправление ошибок линии связи в системе памяти - Google Patents

Исправление ошибок линии связи в системе памяти Download PDF

Info

Publication number
RU2710977C1
RU2710977C1 RU2019104878A RU2019104878A RU2710977C1 RU 2710977 C1 RU2710977 C1 RU 2710977C1 RU 2019104878 A RU2019104878 A RU 2019104878A RU 2019104878 A RU2019104878 A RU 2019104878A RU 2710977 C1 RU2710977 C1 RU 2710977C1
Authority
RU
Russia
Prior art keywords
read
data
protection code
storage device
write
Prior art date
Application number
RU2019104878A
Other languages
English (en)
Inventor
Дзунгвон СУХ
Original Assignee
Квэлкомм Инкорпорейтед
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Квэлкомм Инкорпорейтед filed Critical Квэлкомм Инкорпорейтед
Application granted granted Critical
Publication of RU2710977C1 publication Critical patent/RU2710977C1/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/31Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining coding for error detection or correction and efficient use of the spectrum

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Probability & Statistics with Applications (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Memory System (AREA)

Abstract

Группа изобретений относится к системам памяти и может быть использована для исправления ошибок в системах памяти. Техническим результатом является улучшение надежности защиты данных. Устройство содержит банк памяти; декодер стороны запоминающего устройства, выполненный с возможностью обнаруживать, имеют ли данные записи ошибку, на основе кода защиты записи; кодер стороны запоминающего устройства, выполненный с возможностью формировать код защиты чтения на основе данных чтения, извлеченных из банка памяти; линия связи содержит множество линий данных (DQ), линию маски данных (DM) для использования при операциях записи с маскированием и линию синхронизации строба чтения для использования посредством запоминающего устройства для обеспечения тайминга при операциях чтения и интерфейс стороны запоминающего устройства, выполненный с возможностью принимать данные записи и отправлять данные чтения по множеству линий DQ, принимать код защиты записи по линии синхронизации строба чтения и отправлять код защиты чтения по линии DM. 2 н. и 15 з.п. ф-лы, 12 ил.

Description

Перекрестная ссылка на родственные заявки
[0001] Настоящая заявка на патент испрашивает приоритет согласно предварительной заявке на патент США № 62/380,104, озаглавленной "ИСПРАВЛЕНИЕ ОШИБОК ЛИНИИ СВЯЗИ В СИСТЕМЕ ПАМЯТИ" ("LINK ERROR CORRECTION IN MEMORY SYSTEM"), поданной 26 августа 2016 года, назначенной на представителя настоящей заявки и полностью включенной в настоящую заявку посредством ссылки.
Область техники, к которой относится раскрытие
[0002] Один или более аспектов настоящего раскрытия в целом относятся к системам памяти и, в частности, к исправлению ошибок в системах памяти.
Уровень техники
[0003] При передачах данных между главным устройством и запоминающими устройствами могут иметься ошибки. Эти ошибки линии связи могут быть обнаружены и часто исправлены посредством встраивания в передачи данных кодов исправления ошибок (ECC). Для реализации ECC традиционно использовались две методики. В первой традиционной методике, чтобы разместить и данные, и код ECC, увеличивается ширина ввода/вывода (I/O). Во второй традиционной методике биты ECC передаются между главным устройством и запоминающим устройством посредством увеличения длины пакета данных.
[0004] В первой традиционной методике традиционный сервер и вычислительные системы, как правило, используют модуль памяти с 72-битной шириной ввода/вывода (64-битные данные и соответствующий 8-битный ECC), чтобы увеличить надежность линии связи памяти и массива элементов памяти. Фиг. 1 иллюстрирует упрощенную схему традиционной подсистемы 100 памяти, которая включает в себя главную систему 110 на кристалле (SOC) с массивом 140 элементов памяти. Главная система 110 SOC включает в себя контроллер 120 памяти с кодером/декодером 125 EEC и блок 130 PHY. Массив 140 элементов памяти включает в себя девять 8-битных запоминающих устройств 150. 8-битный код ECC может быть присвоен каждым 64-битным данным для защиты от ошибки любого бита и в главной системе 110 SOC, и в массиве 140 элементов памяти. Данные могут быть записаны в первые восемь запоминающих устройств 150, и код ECC может быть записан в девятое запоминающее устройство 150.
[0005] Как можно заметить, традиционная конфигурация памяти несет расходы на дополнительное запоминающее устройство. Это также приводит к увеличению стоимости площади печатной платы (PCB), требуя маршрутизации более широкого канала памяти и увеличения расходов электропитания в режиме ожидания и активном режиме из-за дополнительного девятого запоминающего устройства 150. Дополнительная конфигурация памяти непосредственно влияет на производительность. Ширина полосы памяти соответствует тому, сколько корректных битов передается на данное количество времени. Однако дополнительные биты ECC при увеличении надежности сами по себе не имеют значения как данных. Таким образом, первая традиционная методика непосредственно влияет на производительность подсистемы памяти в том, что вся ширина ввода/вывода не используется для передачи полезных данных.
[0006] Фиг. 2 иллюстрирует упрощенную схему традиционной подсистемы 100 памяти, но на этот раз для простоты показывающую только один байт данных (DQ). Запоминающее устройство 150 включает в себя блок 260 ввода/вывода (I/O) и множество банков 270 памяти. Как можно заметить, сигнальные линии, совместно называемые линией 290 связи, используются для обмена данными между главной системой 110 SOC и запоминающим устройством 150. Линия 290 связи включает в себя:
- линии данных (DQ[0:7]): двунаправленная байтовая шина DQ для передачи данных между запоминающими устройствами и SOC;
- линию маски данных (DM): маска данных для данных записи;
- линию синхронизации данных (Data CK): входной сигнал синхронизации для стробирования данных записи;
- линию синхронизации строба чтения (Read Strobe CK): выходной сигнал синхронизации, который должен быть выровнен с таймингом данных чтения (входным сигналом синхронизации для SOC);
- линии команд и адресов (CA[0:n]): команда и адрес;
- линию синхронизации команд и адресов (CA CK): входной сигнал синхронизации команд и адресов для извлечения команд и адресов.
[0007] Следует отметить, что линия DM может представлять собой функцию вывода инверсии и маски данных (DMI) - либо инверсия данных, либо маска данных. Функция вывода DMI зависит от настроечного параметра регистра режима. Однако на фиг. 2 для простоты она показана как линия DM.
[0008] Фиг. 3А иллюстрирует временную диаграмму традиционной операции записи с маскированием. Контроллер 120 памяти выдает команду ЗАПИСЬ запоминающему устройству 150. После некоторой задержки один байт (8 битов) данных передается по каждому из шестнадцати пакетных циклов от главной системы 110 SOC к запоминающему устройству 150. Другими словами, передаются 128-битные данные записи (8 битов DQ x длина пакета импульсов 16). На фиг. 3А каждый бит D0-DF представляет 8 битов (один байт) данных записи DQ[0:7], передаваемый в одном пакетном цикле. Данные записи передаются с некоторыми действиями маскирования данных (DM). В этом примере 16-битная маска DM используется для маскирования каждого байта DQ. Традиционно линия синхронизации строба чтения является бездействующей, поскольку это операция записи.
[0009] Фиг. 3B иллюстрирует временную диаграмму традиционной операции чтения. Контроллер 120 памяти 120 выдает команду ЧТЕНИЕ запоминающему устройству 150. После некоторой задержки запоминающее устройство 150 отвечает посредством отправки 128-битных данных чтения (8 битов DQ x длина пакета импульсов 16) главной системе 110 SOC. Снова каждый из битов D0-DF представляет байт данных чтения DQ[0:7], передаваемый в одном пакетном цикле. Синхронизация строба чтения от запоминающего устройства 150 переключается с данными чтения как входным сигналом синхронизации для главной системы 110 SOC. Линия DM является бездействующей, поскольку это операция чтения.
[0010] Во второй традиционной методике длины пакета импульсов увеличиваются для передачи кодов ECC. Например, длина пакета импульсов может быть увеличена от 16 до 18 (длина 16 -> длина 18), и биты ECC могут передаваться между главной системой 110 SOC и запоминающим устройством 150 в пакетных циклах, не используемых для передачи битов DQ. Эта традиционная методика с увеличением длины пакета данных также непосредственно влияет на производительность в том, что не каждый цикл используется для передачи полезных данных.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0011] Этот раздел сущности изобретения идентифицирует признаки некоторых иллюстративных аспектов и не является исключительным или исчерпывающим описанием раскрытого объекта изобретения. Тот факт, что признаки или аспекты включены в этот раздел или опущены из него, не предусматривает указания относительной важности таких признаков. Описаны дополнительные признаки и аспекты, и они станут очевидны для специалистов в области техники после прочтения последующего подробного описания и рассмотрения чертежей, которые являются его частью.
[0012] Раскрыто иллюстративное запоминающее устройство. Запоминающее устройство может содержать банк памяти, интерфейс стороны запоминающего устройства, кодер стороны запоминающего устройства и декодер стороны запоминающего устройства. Интерфейс стороны запоминающего устройства может быть выполнен с возможностью принимать команду ЗАПИСЬ от главного устройства по линии связи, принимать данные записи и код защиты записи от главного устройства по линии связи и сохранять данные записи в банк памяти в ответ на команду ЗАПИСЬ. Интерфейс стороны запоминающего устройства может также быть выполнен с возможностью принимать команду ЧТЕНИЕ от главного устройства по линии связи, извлекать данные чтения из банка памяти в ответ на команду ЧТЕНИЕ и отправлять данные чтения и код защиты чтения главному устройству по линии связи. Декодер стороны запоминающего устройства может быть выполнен с возможностью обнаруживать, имеют ли данные записи ошибку, на основе кода защиты записи, и кодер стороны запоминающего устройства может быть выполнен с возможностью формировать код защиты чтения на основе данных чтения, извлеченных из банка памяти. Линия связи может содержать множество линий данных, линию маски данных и линию синхронизации строба чтения. Линия маски данных может использоваться при операциях записи с маскированием, и линия синхронизации строба чтения может использоваться запоминающим устройством, чтобы обеспечить тайминг при операциях чтения. Интерфейс стороны запоминающего устройства также может быть выполнен с возможностью принимать данные записи и отправлять данные чтения по множеству линий данных, принимать код защиты записи по линии синхронизации строба чтения и отправлять код защиты чтения по линии маски данных.
[0013] Раскрыто иллюстративное главное устройство. Главное устройство может содержать контроллер памяти, интерфейс стороны главного устройства, кодер стороны главного устройства и декодер стороны главного устройства. Контроллер памяти может быть выполнен с возможностью выдавать команды ЧТЕНИЕ и ЗАПИСЬ. Интерфейс стороны главного устройства может быть выполнен с возможностью отправлять команду ЗАПИСЬ от контроллера памяти запоминающему устройству по линии связи и отправлять данные записи и код защиты записи запоминающему устройству по линии связи. Интерфейс стороны главного устройства также может быть выполнен с возможностью отправлять команду ЧТЕНИЕ от контроллера памяти запоминающему устройству по линии связи, принимать данные чтения и код защиты чтения от запоминающего устройства по линии связи после отправки команды ЧТЕНИЕ и обеспечивать данные чтения контроллеру памяти. Кодер стороны главного устройства может быть выполнен с возможностью формировать код защиты записи на основе данных записи, и декодер стороны главного устройства может быть выполнен с возможностью обнаруживать, имеют ли данные чтения ошибку, на основе кода защиты чтения. Линия связи может содержать множество линий данных, линию маски данных и линию синхронизации строба чтения. Линия маски данных может использоваться при операциях записи с маскированием, и линия синхронизации строба чтения, используемая запоминающим устройством, чтобы обеспечить тайминг при операциях чтения. Интерфейс стороны главного устройства также может быть выполнен с возможностью отправлять данные записи и принимать данные чтения по множеству линий данных, отправлять код защиты записи по линии синхронизации строба чтения и принимать код защиты чтения по линии маски данных.
[0014] Раскрыт иллюстративный способ. Способ может содержать отправку посредством главного устройства команды ЗАПИСЬ запоминающему устройству по линии связи, формирование посредством главного устройства кода защиты записи на основе данных записи и отправку посредством главного устройства данных записи и кода защиты записи запоминающему устройству по линии связи. Способ может также содержать обнаружение посредством запоминающего устройства, имеют ли данные записи ошибку, на основе кода защиты записи и сохранение посредством запоминающего устройства данных записи в банк памяти запоминающего устройства в ответ на команду ЗАПИСЬ. Линия связи может содержать множество линий данных, линию маски данных и линию синхронизации строба чтения. Линия маски данных может использоваться при операциях записи с маскированием, и линия синхронизации строба чтения используется запоминающим устройством, чтобы обеспечить тайминг при операциях чтения. Главное устройство может отправлять данные записи запоминающему устройству по множеству линий данных и может отправлять код защиты записи запоминающему устройству по линии синхронизации строба чтения.
[0015] Раскрыт другой иллюстративный способ. Способ может содержать отправку посредством главного устройства команды ЧТЕНИЕ запоминающему устройству по линии связи, извлечение посредством запоминающего устройства данных чтения из банка памяти запоминающего устройства в ответ на команду ЧТЕНИЕ, формирование посредством запоминающего устройства кода защиты чтения на основе данных чтения и отправку посредством запоминающего устройства данных чтения и кода защиты чтения главному устройству по линии связи. Способ также может содержать обнаружение посредством главного устройства, имеют ли данные чтения ошибку, на основе кода защиты чтения. Линия связи может содержать множество линий данных, линию маски данных и линию синхронизации строба чтения. Линия маски данных может использоваться при операциях записи с маскированием, и линия синхронизации строба чтения, используемая запоминающим устройством, чтобы обеспечить тайминг при операциях чтения. Запоминающее устройство может отправлять данные чтения главному устройству по множеству линий данных и может отправлять код защиты чтения главному устройству по линии маски данных.
[0016] Раскрыто иллюстративное устройство. Устройство может содержать главное устройство и запоминающее устройство, выполненные с возможностью взаимодействовать друг с другом по линии связи. Линия связи может содержать множество линий данных, линию маски данных и линию синхронизации строба чтения. Линия маски данных может использоваться при операциях записи с маскированием, и линия синхронизации строба чтения, используемая запоминающим устройством, чтобы обеспечить тайминг при операциях чтения. Запоминающее устройство может быть выполнено с возможностью принимать команду ЧТЕНИЕ от главного устройства по линии связи, извлекать данные чтения из банка памяти запоминающего устройства в ответ на команду ЧТЕНИЕ, формировать код защиты чтения на основе данных чтения, отправлять данные чтения главному устройству по множеству линий данных и отправлять код защиты чтения главному устройству по линии маски данных. Код защиты чтения может являться кодом с контролем по четности для защиты данных чтения. Главное устройство может быть выполнено с возможностью отправлять команду ЧТЕНИЕ запоминающему устройству по линии связи, принимать данные чтения от запоминающего устройства по множеству линий данных, принимать код защиты чтения от запоминающего устройства по линии маски данных и обнаруживать, имеют ли данные чтения ошибку, на основе кода защиты чтения.
[0017] Раскрыто иллюстративное устройство. Устройство может содержать главное устройство и запоминающее устройство, выполненные с возможностью взаимодействовать друг с другом по линии связи. Линия связи может содержать множество линий данных, линию маски данных и линию синхронизации строба чтения. Линия маски данных может использоваться при операциях записи с маскированием, и линия синхронизации строба чтения, используемая запоминающим устройством, чтобы обеспечить тайминг при операциях чтения. Главное устройство может быть выполнено с возможностью отправлять команду ЗАПИСЬ запоминающему устройству по линии связи, формировать код защиты записи на основе данных записи, отправлять данные записи запоминающему устройству по множеству линий данных и отправлять код защиты записи запоминающему устройству по линии синхронизации строба чтения. Код защиты записи может являться кодом с контролем по четности для защиты данных записи. Запоминающее устройство может быть выполнено с возможностью принимать команду ЗАПИСЬ от главного устройства по линии связи, принимать данные записи от главного устройства по множеству линий данных, принимать код защиты записи от главного устройства по линии синхронизации строба чтения и обнаруживать, имеют ли данные записи ошибку, на основе кода защиты записи.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0018] Прилагаемые чертежи представлены для помощи в описании примеров одного или более аспектов раскрытого изобретения и обеспечены только для иллюстрации примеров, а не ограничения.
[0019] Фиг. 1 иллюстрирует схему традиционной подсистемы памяти с дополнительным запоминающим устройством для обработки кодов исправления ошибок;
[0020] Фиг. 2 иллюстрирует схему традиционной подсистемы памяти с сигналами, передаваемыми между главным устройством и запоминающим устройством;
[0021] Фиг. 3А иллюстрирует временную диаграмму операции записи в традиционной подсистеме памяти;
[0022] Фиг. 3B иллюстрирует временную диаграмму операции чтения в традиционной подсистеме памяти;
[0023] Фиг. 4 иллюстрирует схему иллюстративной подсистемы памяти с сигналами, передаваемыми между главным устройством и запоминающим устройством;
[0024] Фиг. 5А иллюстрирует временную диаграмму операции записи в иллюстративной подсистеме памяти;
[0025] Фиг. 5B иллюстрирует временную диаграмму операции чтения в иллюстративной подсистеме памяти;
[0026] Фиг. 6А и 6B иллюстрируют примеры данных и соответствующих кодов защиты;
[0027] Фиг. 7 иллюстрирует блок-схему последовательности этапов иллюстративного способа для выполнения операции записи;
[0028] Фиг. 8 иллюстрирует блок-схему последовательности этапов иллюстративного способа для выполнения операции чтения; и
[0029] Фиг. 9 иллюстрирует примеры устройств со встроенной в них подсистемой памяти.
ПОДРОБНОЕ ОПИСАНИЕ
[0030] Аспекты объекта изобретения обеспечены в последующем описании и соответствующих чертежах, направленных на конкретные примеры раскрытого объекта изобретения. Дополнительные аспекты могут быть разработаны без отступления от объема раскрытого объекта изобретения. Кроме того, известные элементы не будут описываться подробно или будут опущены, чтобы не затруднять понимание значимых подробностей.
[0031] Слово "иллюстративный" используется здесь для обозначения "служащий примером, экземпляром или иллюстрацией". Любой вариант осуществления, описанный здесь как "иллюстративный", не должен обязательно рассматриваться как предпочтительный или имеющий преимущество по сравнению с другими вариантами осуществления. Аналогичным образом, термин "варианты осуществления" не требует, чтобы все варианты осуществления раскрытого объекта изобретения включали в себя обсуждаемый отличительный признак, преимущество или принцип работы.
[0032] Используемая здесь терминология предназначена только для описания конкретных примеров и не предназначена для ограничения. Подразумевается, что используемые здесь формы единственного числа включают в себя также формы множественного числа, если контекст ясно не указывает иначе. Далее будет подразумеваться, что термины "содержит", "содержащий", "включает в себя" и/или "включающий в себя" при использовании в этом документе определяют наличие изложенных отличительных признаков, чисел, процессов, операций, элементов и/или компонентов, но не препятствуют наличию или добавлению одного или более других отличительных признаков, чисел, процессов, операций, элементов, компонентов и/или их групп.
[0033] Кроме того, многие примеры описываются в терминах последовательностей действий, которые должны быть выполнены, например, посредством элементов вычислительного устройства. Будет понятно, что различные описанные здесь действия могут быть выполнены посредством специализированных схем (например, специализированных интегральных схем (ASIC)), посредством программных инструкций, исполняемых одним или более процессорами, или посредством их комбинации. Кроме того, эти описанные здесь последовательности действий могут рассматриваться как воплощенные полностью в пределах машиночитаемого носителя данных любого вида, хранящего соответствующий набор компьютерных инструкций, которые при их исполнении заставляют соответствующий процессор выполнять описанные здесь функции. Таким образом, различные аспекты изобретения могут быть воплощены во многих различных формах, и все из них рассматриваются как находящиеся в пределах объема заявленного объекта изобретения. Кроме того, для каждого из описанных здесь примеров соответствующая форма любых таких примеров может быть описана здесь, например, как "логическая схема, выполненная с возможностью" выполнять описанное действие.
[0034] Один или более аспектов раскрытия могут быть применены к подсистеме памяти малой мощности в мобильных или вычислительных системах для защиты высокоскоростных линий связи (интерфейсов) запоминающих устройств с помощью кодов обнаружения и/или исправления ошибок. Например, один или более аспектов могут относиться к интерфейсам DDR SPEC и DDR PHY малой мощностью следующего поколения в мобильных или вычислительных наборах микросхем.
[0035] В одном или более аспектах предложено встроить функциональные возможности кодирования и декодирования (например, функциональные возможности ECC) и в главное устройство, и в запоминающее устройство. Посредством встраивания таких функциональных возможностей в запоминающее устройство, а также в главное устройство, могут быть решены некоторые или все проблемы, связанные с традиционными методиками. Во-первых, предложенная методика не требует дополнительного запоминающего устройства. Это означает, что предотвращаются затраты на дополнительные устройства, что в свою очередь ведет к меньшей занимаемой площади кристалла и меньшей требуемой мощности. Таким образом, больше памяти может быть отведено для хранения полезных данных на той же площади кристалла. Во-вторых, не требуется увеличивать длину пакета импульсов, т.е., каждый пакетный цикл может использоваться для передачи данных. Это означает, что также предотвращаются потери производительности, связанные с тем, что некоторые пакетные циклы отводятся для передачи ECC. В-третьих, не требуются какие-либо изменения линии связи между главным устройством и запоминающим устройством.
[0036] Фиг. 4 иллюстрирует пример предложенной подсистемы 400 памяти, которая включает в себя главное устройство 410 и запоминающее устройство 450. Это упрощенная иллюстрация, в которой показано единственное запоминающее устройство 450 для одного байта данных (DQ). Однако единственное главное устройство 410 может взаимодействовать с любым количеством запоминающих устройств 450. Главное устройство 410 (например, система на кристалле (SOC)) может включать в себя контроллер 420 памяти, интерфейс 430 стороны главного устройства (например, блок PHY запоминающего устройства), кодер 432 стороны главного устройства и декодер 434 стороны главного устройства.
[0037] Контроллер 420 памяти может выдавать команды ЧТЕНИЕ (READ) и ЗАПИСЬ (WRITE) запоминающему устройству 450 через интерфейс 430 стороны главного устройства. Когда выдается команда ЗАПИСЬ, контроллер 420 памяти также может обеспечить данные записи интерфейсу 430 стороны главного устройства. Когда выдается команда ЧТЕНИЕ, контроллер 420 памяти может принять данные чтения от интерфейса 430 стороны главного устройства.
[0038] Во время операции записи интерфейс 430 стороны главного устройства может отправить команду ЗАПИСЬ и данные записи запоминающему устройству 450 по линии 490 связи. Кодер 432 стороны главного устройства (например, кодер ECC) может сформировать код защиты записи на основе данных записи, и интерфейс 430 стороны главного устройства также может отправить код защиты записи запоминающему устройству 450 по линии 490 связи. Кодом защиты записи может являться EEC и/или коды с контролем по четности других типов для защиты данных записи. То есть, код защиты записи может позволить запоминающему устройству 450 обнаруживать и даже исправлять ошибки, которые могут присутствовать в данных записи. Например, ошибка может возникнуть при передаче данных записи от главного устройства 410 запоминающему устройству 450.
[0039] В другом аспекте кодер 432 стороны главного устройства может сформировать код защиты записи на основе данных записи и данных маски данных (DM). Таким образом, код защиты записи может защитить биты маски данных (DM) в дополнение к защите данных записи. В этом аспекте, если операция записи не включает в себя маскирование, то код защиты записи может быть сформирован со всеми обнуленными битами DM.
[0040] Во время операции чтения интерфейс 430 стороны главного устройства может отправить команду ЧТЕНИЕ запоминающему устройству 450 по линии 490 связи. Затем интерфейс 430 стороны главного устройства может принять данные чтения от запоминающего устройства 450 по линии 490 связи и обеспечить принятые данные чтения контроллеру 420 памяти.
[0041] Интерфейс 430 стороны главного устройства также может принять код защиты чтения от запоминающего устройства 450 по линии 490 связи вместе с данными чтения. Кодом защиты чтения может являться ECC и/или коды с контролем по четности других типов, которые могут использоваться для защиты данных чтения. Декодер 434 стороны главного устройства может определить, являются ли корректными принятые данные чтения, на основе кода защиты чтения. Другими словами, декодер 434 стороны главного устройства может обнаружить, имеют ли данные чтения ошибку. Кроме того, декодер 434 стороны главного устройства может исправить данные чтения, когда обнаружена ошибка, и интерфейс 430 стороны главного устройства может обеспечить исправленные данные чтения контроллеру 420 памяти.
[0042] На фиг. 4 кодер 432 стороны главного устройства и декодер 434 стороны главного устройства проиллюстрированы как встроенные в интерфейс 430 стороны главного устройства. Это является лишь примером и не должно восприниматься как ограничение. Предполагается, что кодер 432 стороны главного устройства и/или декодер 434 стороны главного устройства могут являться самостоятельными или быть встроены в другие компоненты в главном устройстве 410, такие как контроллер 420 памяти. Кроме того, хотя кодер 432 стороны главного устройства и декодер 434 стороны главного устройства проиллюстрированы индивидуально, они могут быть реализованы в едином устройстве. Также предполагается, что кодер 432 стороны главного устройства и/или декодер 434 стороны главного устройства могут быть реализованы в нескольких устройствах. Действительно, в некотором аспекте (аспектах) реализация кодера 432 стороны главного устройства и/или декодера 434 стороны главного устройства может быть распределена среди нескольких компонентов.
[0043] Запоминающее устройство 450 может включать в себя интерфейс 460 стороны запоминающего устройства (например, блок ввода/вывода (I/O)), банки 470 памяти, кодер 462 стороны запоминающего устройства и декодер 464 стороны запоминающего устройства. Во время операции записи интерфейс 460 стороны запоминающего устройства может принять команду ЗАПИСЬ от главного устройства 410 по линии 490 связи. Интерфейс 460 стороны запоминающего устройства может принять данные записи от главного устройства 410 по линии 490 связи и может сохранить данные записи в банках 470 памяти в ответ на команду ЗАПИСЬ.
[0044] Интерфейс 460 стороны запоминающего устройства также может принять код защиты записи от главного устройства 410 по линии 490 связи вместе с данными записи. Как упомянуто, кодом защиты записи может являться ECC и/или коды с контролем по четности других типов. Декодер 464 стороны запоминающего устройства может определить, являются ли корректными принятые данные записи, на основе кода защиты записи. Таким образом, декодер 464 стороны запоминающего устройства может обнаружить, существуют ли ошибки в данных записи. Кроме того, декодер 464 стороны запоминающего устройства может исправить данные записи, когда обнаружена ошибка, и интерфейс 460 стороны запоминающего устройства может сохранить исправленные данные записи в банках 470 памяти.
[0045] Следует помнить, что в предложенной методике не требуется никакое дополнительное запоминающее устройство. В отличие от традиционной системы памяти, проиллюстрированной на фиг. 1, которая имеет девятое запоминающее устройство 150 для сохранения ECC, в предложенной методике не требуется сохранять код защиты записи в каком-либо из запоминающих устройств 450. Вместо этого все запоминающие устройства 450 могут сохранять полезные данные в аспекте.
[0046] Во время операции чтения интерфейс 460 стороны запоминающего устройства может принять команду ЧТЕНИЕ от главного устройства 410 по линии 490 связи. В ответ на команду ЧТЕНИЕ интерфейс 460 стороны запоминающего устройства может извлечь данные чтения из банков 470 памяти и отправить извлеченные данные чтения главному устройству 410 по линии 490 связи.
[0047] Кодер 462 стороны запоминающего устройства может формировать код защиты чтения на основе данных чтения, извлеченных из банков 470 памяти. В качестве альтернативы кодер 462 стороны запоминающего устройства может формировать код защиты чтения на основе данных чтения, а также на основе данных DM, которые могут быть обнулены. Как упомянуто, кодом защиты чтения может являться ECC и/или коды с контролем по четности других типов. Интерфейс 460 стороны запоминающего устройства может обеспечить главному устройству 410 код защиты чтения вместе с данными чтения по линии связи.
[0048] На фиг. 4 кодер 462 стороны запоминающего устройства и декодер 464 стороны запоминающего устройства проиллюстрированы как встроенные в интерфейс 460 стороны запоминающего устройства. Это является лишь примером и не должно восприниматься как ограничение. Предполагается, что кодер 462 стороны запоминающего устройства и/или декодер 464 стороны запоминающего устройства могут являться самостоятельными или быть встроены в другие компоненты в запоминающем устройстве 450. Кроме того, хотя кодер 462 стороны запоминающего устройства и декодер 464 стороны запоминающего устройства проиллюстрированы индивидуально, они могут быть реализованы в едином устройстве. Также предполагается, что кодер 462 стороны запоминающего устройства и/или декодер 464 стороны запоминающего устройства могут быть реализованы в нескольких устройствах. Действительно, в некотором аспекте (аспектах) реализация кодера 462 стороны запоминающего устройства и/или декодера 464 стороны запоминающего устройства может быть распределена среди нескольких компонентов.
[0049] В аспекте изобретения кодер 432 стороны главного устройства и кодер 462 стороны запоминающего устройства могут работать для формирования идентичных кода защиты записи и кода защиты чтения (например, одинакового ECC), когда им предоставляются идентичные данные. В другом аспекте также возможно, что код защиты записи может отличаться от кода защиты чтения. Однако при условии, что декодеры 464, 434 стороны запоминающего устройства и стороны главного устройства соответственно работают взаимодополняющим образом по отношению к кодерам 432, 462 стороны главного устройства и стороны запоминающего устройства, может иметь место надлежащий обмен данными.
[0050] При сравнении предложенной подсистемы 400 памяти на фиг. 4 и традиционной подсистемы 100 памяти на фиг. 2 можно заметить, что линии 490 и 290 связи могут являться идентичными, т.е., не требуется какое-либо изменение в конфигурации линии 490 связи между главным устройством 410 и запоминающим устройством 450. Таким образом, те же самые сигнальные линии данных (DQ[0:7]), маски данных (DM), синхронизации данных (Data CK), синхронизации строба чтения (Read Strobe CK), команд и адресов (CA[0:n]) и синхронизации команд и адресов (CA CK) могут использоваться для обмена информацией между главным устройством 410 и запоминающим устройством 450. Поскольку могут использоваться те же самые сигнальные линии, не требуются никакие изменения в архитектуре линии 490 связи.
[0051] Желательно, чтобы коды защиты записи и чтения по-прежнему передавались между главным устройством 410 и запоминающим устройством 450 без изменения архитектуры линии связи, без увеличения ширины ввода/вывода и без увеличения длины пакета импульсов. Следует помнить, что в традиционной системе памяти линия синхронизации строба чтения остается бездействующей во время операции записи (см. фиг. 3А), и линия DM остается бездействующей во время операции чтения (см. фиг. 3B). Таким образом, в аспекте изобретения предложено использовать линию синхронизации строба чтения для передачи кода защиты записи во время операции записи и использовать линию DM для передачи кода защиты чтения во время операции чтения. Посредством использования линии синхронизации строба чтения и линии DM не требуются никакие дополнительные сигнальные линии для передачи кодов защиты записи и чтения между главным устройством 410 и запоминающим устройством 450. Данные чтения и данные записи по-прежнему могут передаваться по линиям данных (DQ).
[0052] Фиг. 5А иллюстрирует временную диаграмму примера операции записи с маскированием. На этой иллюстративной диаграмме предполагается, что 128-битные данные записи (8 битов DQ x длина пакета импульсов 16) передаются по линиям DQ от главного устройства 410 к запоминающему устройству 450. Каждый из битов D0-DF может представлять 8 битов (байт) данных записи DQ [0:7], передаваемых в одном пакетном цикле. В этом примере предполагается, что данные записи передаются с некоторыми действиями маски данных (DM). Например, 16-битная маска данных может использоваться для маскирования байтов DQ данных записи. Например, четвертый и девятый биты DM (M3 и M8) могут быть установлены для маскирования четвертого и девятого байтов DQ (D3 и D8). Следует отметить, что для обычной операции записи без маскирования все биты DM будут сброшены, т.е., обнулены.
[0053] Кодер 432 стороны главного устройства может сформировать код защиты записи (например, 8-битный ECC), который затем может быть передан по линии синхронизации строба чтения посредством интерфейса 430 стороны главного устройства. Кодер 432 стороны главного устройства может сформировать код защиты записи на основе данных записи, принятых от контроллера 420 памяти. Например, 8-битный код защиты записи может быть сформирован для защиты 128-битных данных записи. В другом аспекте кодер 432 стороны главного устройства может сформировать код защиты записи на основе битов DM в дополнение к данным записи. Например, 8-битный ECC может быть сформирован для защиты в общей сложности 144 битов (128-битных данных записи и 16-битной маски данных).
[0054] Таким образом, в обычной операции записи (без маскирования) код защиты записи может быть основан только на 128-битных данных записи. В качестве альтернативы в обычной операции записи код защиты записи может быть основан на 128-битных данных записи и обнуленных битах DM. В операции записи с маскированием, если защита данных DM не представляет интереса, то код защиты записи может быть основан только на данных записи. В ином случае при операции записи с маскированием код защиты записи может быть основан на данных записи и данных DM.
[0055] Как можно заметить на фиг. 5А, 8-битный E[0:7] код защиты записи может быть передан таким образом, чтобы он совпадал с пакетными циклами 8-15. В более общем случае код защиты записи может быть передан во время последней части пакетных циклов таким образом, чтобы конец пакетных циклов (например, пакетный цикл 15) совпадал с передачей последнего бита (например, E7) кода защиты записи. Это вызвано тем, что формирование кода защиты записи может занять некоторое время. Посредством передачи кода защиты записи во время последней части пакетных циклов таким образом, чтобы конец передачи данных чтения совпадал с концом передачи кода защиты чтения, может быть обеспечено максимальное количество времени для формирования данных защиты записи без необходимости увеличения длины пакета импульсов.
[0056] Безусловно, передача кода защиты записи может начаться, как только будут доступны индивидуальные биты кода защиты записи. Таким образом, передача кода защиты записи может закончиться до конца пакетных циклов. Но независимо от этого, в общем случае предпочтительно, чтобы передача кода защиты записи закончилась не позднее, чем конец пакетных циклов, чтобы избежать удлинения пакета импульсов.
[0057] Фиг. 5B иллюстрирует временную диаграмму примера операции чтения. Когда контроллер 420 памяти выдает команду ЧТЕНИЕ запоминающему устройству 450, запоминающее устройство 450 может ответить посредством отправки данных чтения главному устройству 410. В этой иллюстративной диаграмме предполагается, что 128-битные данные чтения (8 битов DQ x длина пакета импульсов 16) передаются от запоминающего устройства 450 к главному устройству 410 по линиям DQ. Каждый из битов D0-DF может представлять 8 битов (байт) данных чтения DQ[0:7], передаваемых в одном пакетном цикле.
[0058] Кодер 462 стороны запоминающего устройства может формировать код защиты чтения (например, 8-битный ECC), который затем может быть передан через линию DM посредством интерфейса 460 стороны запоминающего устройства. Кодер 462 стороны запоминающего устройства может формировать код защиты чтения на основе данных чтения, извлеченных из банков 470 памяти. Например, 8-битный код защиты чтения может быть сформирован для защиты 128-битных данных чтения. В другом аспекте код защиты чтения может быть сформирован для защиты в общей сложности 144 битов (128-битных данных записи и 16-битной обнуленной маски DM.
[0059] 8-битный E[0:7] код защиты чтения может быть передан таким образом, чтобы он совпадал с пакетными циклами 8-15. В более общем случае код защиты чтения может быть передан во время последней части пакетных циклов таким образом, чтобы конец пакетных циклов (например, пакетный цикл 15) совпадал с последним битом (например, E7) кода защиты чтения. Посредством передачи кода защиты чтения во время последней части пакетных циклов таким образом, чтобы конец передачи данных чтения совпадал с концом передачи кода защиты чтения, может быть обеспечено максимальное время для формирования данных защиты чтения без необходимости увеличения длины пакета импульсов.
[0060] Передача кода защиты чтения может начаться, как только сформированы индивидуальные биты кода защиты чтения. Таким образом передача кода защиты чтения может закончиться до конца пакетных циклов. Но независимо от этого, в общем случае предпочтительно, чтобы передача кода защиты чтения закончилась не позднее, чем конец пакетных циклов, чтобы избежать удлинения пакета импульсов.
[0061] Фиг. 6А иллюстрирует пример данных (например, данных чтения/записи) и соответствующий код защиты (например, код защиты чтения/записи). В этом примере можно предположить, что 8-битный код защиты (E0-E7) (например, биты ECC) используется для защиты 144-битных данных (128-битные данные чтения/записи (d0-d7F)+16-битные данные DM (M0-MF)). Как упомянуто, все биты DM могут быть обнулены для обычных операций чтения/записи. Это является лишь примером. Любое количество битов данных (например, любая комбинация битов данных чтения/записи и битов маскирования) может быть защищено с помощью кода защиты.
[0062] Количество битов для кода защиты также может быть различным в зависимости от желаемого уровня защиты (например, обнаружения и исправления ошибок). Фиг. 6B иллюстрирует другой пример данных, данных DM и соответствующего кода защиты. В этом примере 9 битов ECC могут быть предназначены для защиты 128-битных данных (например, данных чтения/записи), и 6 битов ECC могут быть предназначены для защиты 16-битных данных DM. Таким образом, в этом примере может передаваться 15-битный код ECC (E0-EE).
[0063] Фиг. 7 иллюстрирует блок-схему последовательности этапов иллюстративного способа 700 для выполнения операции записи. Способ 700 может быть применен к операциям записи с маскированием и/или к обычным операциям записи. На этой фигуре главное устройство 410 может выполнять этапы 710-730, и запоминающее устройство 450 может выполнять этапы 740-780. На стороне главного устройства, на этапе 710, контроллер 420 памяти может выдать команду ЗАПИСЬ стороне запоминающего устройства через интерфейс 430 стороны главного устройства. На этапе 720 кодер 432 стороны главного устройства может сформировать код защиты записи на основе данных записи, обеспеченных контроллером 420 памяти. В качестве альтернативы кодер 432 стороны главного устройства может сформировать код защиты записи для защиты данных записи и данных DM. На этапе 730 интерфейс 430 стороны главного устройства может отправить данные записи и код защиты записи (например, ECC) стороне запоминающего устройства. Данные записи могут быть отправлены по линиям DQ, и код защиты записи может быть отправлен по линии синхронизации строба чтения.
[0064] На стороне запоминающего устройства, на этапе 740, интерфейс 460 стороны запоминающего устройства может принять команду ЗАПИСЬ от стороны главного устройства. После этого, на этапе 750, интерфейс 460 стороны запоминающего устройства может принять данные записи (например, по линиям DQ) и код защиты записи (например, по линии синхронизации строба чтения) от стороны главного устройства. На этапе 760 декодер 464 стороны запоминающего устройства может обнаружить, существует ли ошибка в данных записи, на основе кода защиты записи. В качестве альтернативы декодер 464 стороны запоминающего устройства может обнаружить, существует ли ошибка в данных записи и/или данных DM, на основе кода защиты записи. На этапе 770 декодер 464 стороны запоминающего устройства может при необходимости исправить данные записи, например, когда обнаружена ошибка (ошибки) какого-либо бита. На этапе 780 интерфейс 460 стороны запоминающего устройства может сохранить данные записи в банках 470 памяти. Если декодер 464 стороны запоминающего устройства исправляет данные записи, исправленные данные записи могут быть сохранены в банках 470 памяти.
[0065] Фиг. 8 иллюстрирует блок-схему последовательности этапов иллюстративного способа 800 для выполнения операции чтения. На этой фигуре главное устройство 410 может выполнять этапы 810-850, и запоминающее устройство 450 может выполнять этапы 850-890. На стороны запоминающего устройства, на этапе 860, интерфейс 460 стороны запоминающего устройства может принять команду ЧТЕНИЕ от стороны главного устройства. На этапе 870 интерфейс 460 стороны запоминающего устройства может извлечь данные чтения из банков 470 памяти. На этапе 880 кодер 462 стороны запоминающего устройства может сформировать код защиты чтения на основе извлеченных данных чтения. В качестве альтернативы кодер 462 стороны запоминающего устройства может сформировать код защиты чтения для защиты данных чтения и данных DM, и данные DM могут быть обнулены. На этапе 890 интерфейс 460 стороны запоминающего устройства может отправить данные чтения и код защиты чтения (например, ECC) стороне главного устройства. Данные чтения могут быть отправлены по линиям DQ, и код защиты чтения может быть отправлен по линии DM.
[0066] На стороне главного устройства, на этапе 810, контроллер 420 памяти может выдать команду ЧТЕНИЕ стороне запоминающего устройства через интерфейс 430 стороны главного устройства. После этого, на этапе 820, интерфейс 430 стороны главного устройства может принять данные чтения (например, по линиям DQ) и код защиты чтения (например, по линии DM) от стороны запоминающего устройства. На этапе 830 декодер 434 стороны главного устройства может обнаружить, существует ли ошибка в данных чтения, на основе кода защиты чтения. В качестве альтернативы декодер 434 стороны главного устройства может обнаружить, существует ли ошибка в данных чтения и/или данных DM, на основе кода защиты чтения. На этапе 840 декодер 434 стороны главного устройства может при необходимости исправить данные чтения, например, когда обнаружена ошибка (ошибки) какого-либо бита. На этапе 850 интерфейс 430 стороны главного устройства может обеспечить данные чтения контроллеру 420 памяти. Если декодер 434 стороны главного устройства исправляет данные чтения, исправленные данные чтения могут быть обеспечены контроллеру 420 памяти.
[0067] Хотя специальным образом не показано, главное устройство 410 может взаимодействовать с несколькими запоминающими устройствами 450. Следует отметить, что не обязательно требуется выполнять все этапы способа 700 или способа 800. Кроме того, этапы способа 700 и/или этапы способа 800 не обязательно должны выполняться в каком-либо конкретном порядке.
[0068] Фиг. 9 иллюстрирует различные электронные устройства, которые могут быть интегрированы с упомянутой выше подсистемой 400 памяти. Например, устройство 902 мобильного телефона, устройство 904 ноутбука, терминальное устройство 906, а также носимые устройства, переносные системы, которым требуется миниатюрный форм-фактор, чрезвычайно низкий профиль, могут включать в себя устройство/корпус 900, которые включают в себя подсистему 400 памяти согласно настоящему описанию. Устройство/корпус 900 могут представлять собой, например, любой элемент из интегральных схем, кристаллов, интегрированных устройств, корпусов интегрированных устройств, устройств интегральных схем, корпусов устройств, корпусов интегральных схем (IC), устройств "корпус на корпусе", системы в корпусных устройствах, описанных в настоящем документе. Устройства 902, 904, 906, проиллюстрированные на фиг. 9, являются лишь иллюстративными. Другие электронные устройства также могут представлять собой пример устройства/корпуса 900, в том числе, но без ограничения, группа устройств (например, электронных устройств), которая включает в себя мобильные устройства, переносные личные системы связи (PCS), переносные модули обработки данных, такие как карманные персональные компьютеры, устройства с поддержкой системы глобального позиционирования (GPS), навигационные устройства, телевизионные приставки, аудиопроигрыватели, видеопроигрыватели, системы для развлечений, модули обработки данных в стационарном местоположении, такие как оборудование для считывания показаний счетчиков, устройства связи, смартфоны, планшетные компьютеры, компьютеры, носимые устройства, серверы, маршрутизаторы, электронные устройства, реализованные в автотранспортных средствах (например, в автономных транспортных средствах), или любое другое устройство, которое хранит или извлекает данные или компьютерные инструкции, или любую их комбинацию.
[0069] Неполный перечень эффектов одного или более аспектов предложенной подсистемы памяти состоит в следующем:
- Улучшение надежности применения защиты данных (например, ECC) для высокоскоростной линии связи запоминающего устройства без потери ширины полосы запоминающего устройства и воздействия на стоимость;
- Не требуется никакое дополнительное запоминающее устройство;
- Сохранение количества выводов памяти малой мощности и совместимости корпусов.
[0070] Специалисты в области техники поймут, что информация и сигналы могут быть представлены с использованием любых из множества различных технологий и методик. Например, данные, инструкции, команды, информация, сигналы, биты, символы и элементарные сигналы, которые могут упоминаться в изложенном выше описании, могут быть представлены напряжениями, токами, электромагнитными волнами, магнитными полями или частицами, оптическими полями или частицами, или любой их комбинацией.
[0071] Кроме того, специалисты поймут, что различные иллюстративные логические блоки, модули, схемы и этапы алгоритмов, описанные в связи с раскрытыми здесь примерами, могут быть реализованы как электронное аппаратное оборудование, программное обеспечение или их комбинация. Чтобы ясно проиллюстрировать эту взаимозаменяемость аппаратного оборудования и программного обеспечения, различные иллюстративные компоненты, блоки, модули, схемы и способы были описаны выше в общих чертах в терминах их функциональности. Реализована ли такая функциональность как аппаратное оборудование или программное обеспечение, зависит от конкретного применения и конструктивных ограничений, накладываемых на систему в целом. Специалисты могут реализовать описанную функциональность различными способами для каждого конкретного применения, но такие реализации не должны рассматриваться как вызывающие отход от объема настоящего раскрытия.
[0072] Способы, последовательности и/или алгоритмы, описанные в связи с разрытыми здесь примерами, могут быть воплощены непосредственно в аппаратных средствах, в программном модуле, исполняемом посредством процессора, или в их комбинации. Программный модуль может находиться в оперативном запоминающем устройстве (ОЗУ), флэш-памяти, постоянном запоминающем устройстве (ПЗУ), стираемом программируемом постоянном запоминающем устройстве (СППЗУ), электрически стираемом программируемом постоянном запоминающем устройстве (ЭСППЗУ), регистрах, жестком диске, съемном диске, компакт-диске, предназначенном только для чтения (CD-ROM), или любом другом носителе данных, известном в области техники. Иллюстративный носитель данных соединен с процессором таким образом, что процессор может считывать информацию с носителя данных и записывать информацию на него. В качестве альтернативы носитель данных может являться неотъемлемой частью процессора.
[0073] В соответствии с этим аспект изобретения может включать в себя машиночитаемые носители, воплощающие любое из описанных выше устройств. В соответствии с этим объем раскрытого объекта изобретения не ограничен проиллюстрированными примерами, и любые средства для выполнения описанных здесь функций включены в аспекты изобретения.
[0074] Хотя предшествующее раскрытие показывает иллюстративные примеры, следует отметить, что могут быть выполнены различные изменения и модификации без отступления от объема раскрытого предмета изобретения, заданного посредством приложенной формулы изобретения. Функции, процессы и/или действия способа в соответствии с описанными здесь примерами не обязательно должны выполняться в каком-либо конкретном порядке. Кроме того, хотя элементы раскрытого объекта изобретения могут быть описаны или заявлены в единственном числе, множественное число подразумевается, если явно не указано ограничение единственным числом.

Claims (50)

1. Запоминающее устройство, содержащее:
банк памяти;
интерфейс стороны запоминающего устройства, выполненный с возможностью:
принимать команду ЗАПИСЬ (WRITE) от главного устройства по линии связи,
принимать данные записи и код защиты записи от главного устройства по линии связи,
сохранять данные записи в банк памяти в ответ на команду ЗАПИСЬ,
принимать команду ЧТЕНИЕ (READ) от главного устройства по линии связи,
извлекать данные чтения из банка памяти в ответ на команду ЧТЕНИЕ, и
отправлять данные чтения и код защиты чтения главному устройству по линии связи;
декодер стороны запоминающего устройства, выполненный с возможностью обнаруживать, имеют ли данные записи ошибку, на основе кода защиты записи; и
кодер стороны запоминающего устройства, выполненный с возможностью формировать код защиты чтения на основе данных чтения, извлеченных из банка памяти,
причем линия связи содержит множество линий данных (DQ), линию маски данных (DM) для использования при операциях записи с маскированием и линию синхронизации строба чтения для использования посредством запоминающего устройства для обеспечения тайминга при операциях чтения, и
причем интерфейс стороны запоминающего устройства выполнен с возможностью
принимать данные записи и отправлять данные чтения по множеству линий DQ,
принимать код защиты записи по линии синхронизации строба чтения, и
отправлять код защиты чтения по линии DM.
2. Запоминающее устройство по п. 1, в котором код защиты записи и/или код защиты чтения содержат код с контролем по четности.
3. Запоминающее устройство по п. 1, в котором декодер стороны запоминающего устройства выполнен с возможностью исправлять данные записи, когда в данных записи обнаружена ошибка, в результате чего интерфейс стороны запоминающего устройства сохраняет исправленные данные записи в банк памяти.
4. Запоминающее устройство по п. 1,
в котором интерфейс стороны запоминающего устройства выполнен с возможностью принимать данные DM от главного устройства по линии DM, и
в котором декодер стороны запоминающего устройства выполнен с возможностью обнаруживать, имеют ли данные записи и/или данные DM ошибку, на основе кода защиты записи.
5. Запоминающее устройство по п. 1, в котором кодер стороны запоминающего устройства выполнен с возможностью формировать код защиты чтения на основе обнуленной маски DM в дополнение к данным чтения.
6. Запоминающее устройство по п. 1, в котором интерфейс стороны запоминающего устройства выполнен с возможностью отправлять данные чтения и код защиты чтения таким образом, что конец передачи данных чтения совпадает с концом передачи кода защиты чтения.
7. Запоминающее устройство по п. 1, в котором один или оба из кода защиты записи и кода защиты чтения являются кодами исправления ошибок (ECC).
8. Запоминающее устройство по п. 1, в котором код защиты записи не сохраняется в запоминающем устройстве.
9. Запоминающее устройство по п. 1, причем запоминающее устройство встроено в устройство, выбранное из группы, состоящей из аудиопроигрывателя, видеопроигрывателя, системы для развлечений, навигационного устройства, устройства связи, мобильного устройства, мобильного телефона, смартфона, карманного персонального компьютера, терминала со стационарным местоположением, планшетного компьютера, компьютера, носимого устройства, ноутбука, сервера и устройства в автотранспортном средстве.
10. Главное устройство, содержащее:
контроллер памяти, выполненный с возможностью выдавать команды ЧТЕНИЕ и ЗАПИСЬ;
интерфейс стороны главного устройства, выполненный с возможностью:
отправлять команду ЗАПИСЬ от контроллера памяти запоминающему устройству по линии связи,
отправлять данные записи и код защиты записи запоминающему устройству по линии связи,
отправлять команду ЧТЕНИЕ от контроллера памяти запоминающему устройству по линии связи,
после отправки команды ЧТЕНИЕ принимать данные чтения и код защиты чтения от запоминающего устройства по линии связи, и
обеспечивать данные чтения контроллеру памяти;
кодер стороны главного устройства, выполненный с возможностью формировать код защиты записи на основе данных записи; и
декодер стороны главного устройства, выполненный с возможностью обнаруживать, имеют ли данные чтения ошибку, на основе кода защиты чтения,
причем линия связи содержит множество линий данных (DQ), линию маски данных (DM) для использования при операциях записи с маскированием и линию синхронизации строба чтения для использования посредством запоминающего устройства для обеспечения тайминга при операциях чтения, и
причем интерфейс стороны главного устройства выполнен с возможностью:
отправлять данные записи и принимать данные чтения по множеству линий DQ,
отправлять код защиты записи по линии синхронизации строба чтения, и
принимать код защиты чтения по линии DM.
11. Главное устройство по п. 10, в котором код защиты записи и/или код защиты чтения содержат код с контролем по четности.
12. Главное устройство по п. 10, в котором декодер стороны главного устройства выполнен с возможностью исправлять данные чтения, когда обнаружена ошибка в данных чтения, в результате чего интерфейс стороны главного устройства обеспечивает исправленные данные чтения контроллеру памяти.
13. Главное устройство по п. 10,
в котором интерфейс стороны главного устройства выполнен с возможностью отправлять данные DM запоминающему устройству по линии DM, и
в котором кодер стороны главного устройства выполнен с возможностью формировать код защиты записи на основе данных записи и данных DM.
14. Главное устройство по п. 10, в котором код защиты чтения, принятый по линии DM, является кодом, сформированным на основе данных чтения и обнуленной маски DM.
15. Главное устройство по п. 10, в котором интерфейс стороны главного устройства выполнен с возможностью отправлять данные записи и код защиты записи таким образом, что конец передачи данных записи совпадает с концом передачи кода защиты записи.
16. Главное устройство по п. 10, в котором один или оба из кода защиты записи и кода защиты чтения являются кодами исправления ошибок (ECC).
17. Главное устройство по п. 10, причем главное устройство встроено в устройство, выбранное из группы, состоящей из аудиопроигрывателя, видеопроигрывателя, системы для развлечений, навигационного устройства, устройства связи, мобильного устройства, мобильного телефона, смартфона, карманного персонального компьютера, терминала со стационарным местоположением, планшетного компьютера, компьютера, носимого устройства, ноутбука, сервера и устройства в автотранспортном средстве.
RU2019104878A 2016-08-26 2017-07-07 Исправление ошибок линии связи в системе памяти RU2710977C1 (ru)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662380104P 2016-08-26 2016-08-26
US62/380,104 2016-08-26
US15/643,455 2017-07-06
US15/643,455 US10331517B2 (en) 2016-08-26 2017-07-06 Link error correction in memory system
PCT/US2017/041129 WO2018038813A1 (en) 2016-08-26 2017-07-07 Link error correction in memory system

Publications (1)

Publication Number Publication Date
RU2710977C1 true RU2710977C1 (ru) 2020-01-14

Family

ID=61242685

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2019104878A RU2710977C1 (ru) 2016-08-26 2017-07-07 Исправление ошибок линии связи в системе памяти

Country Status (20)

Country Link
US (1) US10331517B2 (ru)
EP (1) EP3479241B1 (ru)
JP (1) JP6630869B2 (ru)
KR (1) KR102045712B1 (ru)
CN (1) CN109643257B (ru)
AU (2) AU2017315303B2 (ru)
BR (1) BR112019003473A2 (ru)
CA (1) CA3032278C (ru)
CO (1) CO2019001630A2 (ru)
ES (1) ES2829331T3 (ru)
IL (1) IL264303B (ru)
MX (1) MX2019002194A (ru)
MY (1) MY201067A (ru)
PH (1) PH12019500160A1 (ru)
RU (1) RU2710977C1 (ru)
SA (1) SA519401035B1 (ru)
SG (1) SG11201900375YA (ru)
TW (1) TWI684102B (ru)
WO (1) WO2018038813A1 (ru)
ZA (1) ZA201901194B (ru)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107039086A (zh) * 2017-05-17 2017-08-11 西安紫光国芯半导体有限公司 具有兼容不同数据长度的纠错功能的存储器和纠错方法
US10387242B2 (en) 2017-08-21 2019-08-20 Qualcomm Incorporated Dynamic link error protection in memory systems
US10725912B2 (en) 2018-12-19 2020-07-28 Micron Technology, Inc. Power loss protection in memory sub-systems
US11537464B2 (en) * 2019-06-14 2022-12-27 Micron Technology, Inc. Host-based error correction
US11372717B2 (en) 2019-08-30 2022-06-28 Qualcomm Incorporated Memory with system ECC
CN110750406B (zh) * 2019-10-29 2023-10-31 湖南国科微电子股份有限公司 一种检测方法、装置和soc芯片
US11493949B2 (en) * 2020-03-27 2022-11-08 Qualcomm Incorporated Clocking scheme to receive data
US11728003B2 (en) 2020-05-12 2023-08-15 Qualcomm Incorporated System and memory with configurable error-correction code (ECC) data protection and related methods
US11157359B2 (en) * 2020-09-24 2021-10-26 Intel Corporation Techniques to implement a hybrid error correction code scheme
KR20230021409A (ko) 2021-08-05 2023-02-14 에스케이하이닉스 주식회사 트레이닝동작을 수행하기 위한 반도체시스템
US11687273B2 (en) * 2021-09-29 2023-06-27 Micron Technology, Inc. Memory controller for managing data and error information
CN114006819A (zh) * 2021-11-03 2022-02-01 北京天融信网络安全技术有限公司 一种检测策略生成及装置、数据传输方法及装置
US20230170037A1 (en) * 2021-11-30 2023-06-01 Qualcomm Incorporated Hybrid memory system with increased bandwidth
US20240126438A1 (en) * 2022-10-18 2024-04-18 Qualcomm Incorporated Metadata registers for a memory device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2154897C2 (ru) * 1995-04-03 2000-08-20 Матсусита Электрик Индастриал Ко., Лтд. Система передачи информации, устройство записи и воспроизведения информации, а также носитель записи, использующие формат представления данных на основе кода с исправлением ошибок
US20090327800A1 (en) * 2008-04-23 2009-12-31 International Business Machines Corporation Apparatus, system and method for providing error protection for data-masking bits
US20130145227A1 (en) * 2011-12-05 2013-06-06 Lsi Corporation Method and Apparatus to Reduce a Quantity of Error Detection/Correction Bits in Memory Coupled to a Data-Protected Processor Port
US20140095956A1 (en) * 2012-09-28 2014-04-03 Serkan Ozdemir Endurance aware error-correcting code (ecc) protection for non-volatile memories
US20140177362A1 (en) * 2012-12-20 2014-06-26 Advanced Micro Devices, Inc. Memory Interface Supporting Both ECC and Per-Byte Data Masking

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7032056B2 (en) * 2003-05-08 2006-04-18 International Business Machines Corporation Encoding of message onto strobe signals
KR100978268B1 (ko) * 2004-07-15 2010-08-26 엘에스산전 주식회사 분산 제어 시스템의 고속 이중화 데이터 복사 보드
KR100755371B1 (ko) * 2005-05-03 2007-09-04 삼성전자주식회사 반도체 메모리 장치 및 이 장치의 데이터 스트로우브 신호발생방법
CN101060015A (zh) * 2007-05-23 2007-10-24 北京芯技佳易微电子科技有限公司 一种多比特闪存及其错误检测和纠正的方法
EP2223301A4 (en) * 2007-12-21 2012-04-04 Mosaid Technologies Inc NON-VOLATILE SEMICONDUCTOR ARRANGEMENT WITH POWER SAVING FEATURE
US8341498B2 (en) * 2010-10-01 2012-12-25 Sandisk Technologies Inc. System and method of data encoding
CN102546755A (zh) * 2011-12-12 2012-07-04 华中科技大学 云存储系统的数据存储方法
US9164834B2 (en) * 2013-05-06 2015-10-20 Samsung Electronics Co., Ltd. Semiconductor memory devices, memory systems including the same and method of writing data in the same
CN105468292B (zh) * 2014-09-05 2019-04-23 群联电子股份有限公司 数据存取方法、存储器储存装置及存储器控制电路单元
US9558066B2 (en) * 2014-09-26 2017-01-31 Intel Corporation Exchanging ECC metadata between memory and host system
KR102438552B1 (ko) * 2015-02-04 2022-09-01 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작방법
US9965352B2 (en) * 2015-11-20 2018-05-08 Qualcomm Incorporated Separate link and array error correction in a memory system
US20180059976A1 (en) * 2016-08-26 2018-03-01 Sandisk Technologies Llc Storage System with Integrated Components and Method for Use Therewith

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2154897C2 (ru) * 1995-04-03 2000-08-20 Матсусита Электрик Индастриал Ко., Лтд. Система передачи информации, устройство записи и воспроизведения информации, а также носитель записи, использующие формат представления данных на основе кода с исправлением ошибок
US20090327800A1 (en) * 2008-04-23 2009-12-31 International Business Machines Corporation Apparatus, system and method for providing error protection for data-masking bits
US20130145227A1 (en) * 2011-12-05 2013-06-06 Lsi Corporation Method and Apparatus to Reduce a Quantity of Error Detection/Correction Bits in Memory Coupled to a Data-Protected Processor Port
US20140095956A1 (en) * 2012-09-28 2014-04-03 Serkan Ozdemir Endurance aware error-correcting code (ecc) protection for non-volatile memories
US20140177362A1 (en) * 2012-12-20 2014-06-26 Advanced Micro Devices, Inc. Memory Interface Supporting Both ECC and Per-Byte Data Masking

Also Published As

Publication number Publication date
ES2829331T3 (es) 2021-05-31
IL264303A (en) 2019-02-28
CA3032278C (en) 2021-01-12
BR112019003473A2 (pt) 2019-05-21
CN109643257A (zh) 2019-04-16
KR20190043540A (ko) 2019-04-26
AU2019222960A1 (en) 2019-09-26
CA3032278A1 (en) 2018-03-01
IL264303B (en) 2019-08-29
JP6630869B2 (ja) 2020-01-15
MY201067A (en) 2024-02-01
SG11201900375YA (en) 2019-03-28
EP3479241B1 (en) 2020-08-19
WO2018038813A1 (en) 2018-03-01
AU2019222960B2 (en) 2020-10-15
TW201810056A (zh) 2018-03-16
MX2019002194A (es) 2019-06-24
CN109643257B (zh) 2020-07-03
PH12019500160A1 (en) 2019-11-11
EP3479241A1 (en) 2019-05-08
AU2017315303A1 (en) 2019-02-07
AU2017315303B2 (en) 2020-06-18
NZ750205A (en) 2020-10-30
KR102045712B1 (ko) 2019-11-15
ZA201901194B (en) 2020-12-23
US20180060171A1 (en) 2018-03-01
SA519401035B1 (ar) 2021-11-06
TWI684102B (zh) 2020-02-01
US10331517B2 (en) 2019-06-25
JP2019525356A (ja) 2019-09-05
CO2019001630A2 (es) 2019-05-10

Similar Documents

Publication Publication Date Title
RU2710977C1 (ru) Исправление ошибок линии связи в системе памяти
EP3377974B1 (en) Separate link and array error correction in a memory system
CN108351820B (zh) 在跨存储器链路传送纠正数据时保护ecc位置
US8135935B2 (en) ECC implementation in non-ECC components
US9015553B2 (en) Data integrity in memory controllers and methods
JP2018524708A (ja) 低電力メモリサブシステムにおけるメモリアレイおよびリンク誤り訂正
US8341330B2 (en) Method and system for enhanced read performance in serial peripheral interface
US20090164711A1 (en) Semiconductor memory controller, semiconductor memory, and method of controlling semiconductor memory controller
US20070230231A1 (en) Memory system
NZ750205B2 (en) Link error correction in memory system
CN116151341A (zh) 用于神经网络处理器的校验电路、方法及神经网络处理器