RU2749911C1 - Аппаратная реализация механизма использования одной памяти несколькими устройствами - Google Patents

Аппаратная реализация механизма использования одной памяти несколькими устройствами Download PDF

Info

Publication number
RU2749911C1
RU2749911C1 RU2020143093A RU2020143093A RU2749911C1 RU 2749911 C1 RU2749911 C1 RU 2749911C1 RU 2020143093 A RU2020143093 A RU 2020143093A RU 2020143093 A RU2020143093 A RU 2020143093A RU 2749911 C1 RU2749911 C1 RU 2749911C1
Authority
RU
Russia
Prior art keywords
memory
width
devices
information
queue
Prior art date
Application number
RU2020143093A
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 Акционерное Общество "Крафтвэй Корпорэйшн Плс"
Priority to RU2020143093A priority Critical patent/RU2749911C1/ru
Application granted granted Critical
Publication of RU2749911C1 publication Critical patent/RU2749911C1/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

Изобретение относится к области запоминающих устройств. Технический результат заключается в обеспечении возможности бесконфликтного использования одной памяти несколькими аппаратными модулями. Такой результат достигается тем, что время использования памяти разделяется между разными устройствами-потребителями в пропорциях, соответствующих производительности устройств, при этом ширина блочной памяти берется достаточной для того, чтобы устройства-потребители памяти могли бесперебойно функционировать с полученной информацией в период отсутствия доступа к памяти, между устройствами, осуществляющими запись, и памятью устанавливают накопители, хранящие информацию для записи, представляющие собой два регистра, по ширине равных ширине памяти, в одном из которых накапливается информация от устройств, при заполнении передаваемая во второй регистр, из которого, в отведенный временной такт, информация записывается в блочную память, а между памятью и устройствами, осуществляющими чтение из памяти, устанавливают обратные накопители, представляющие собой очередь с входом, по ширине равным ширине памяти, и выходом, по ширине равным ширине шины устройства, извлечение из которой производится устройством по мере необходимости, а загрузка в очередь происходит в соответствующий устройству такт, если в очереди достаточно места.

Description

Изобретение относится к области немеханических запоминающих устройств, предназначено для повышения скорости работы запоминающих устройств на основе микросхем памяти (SSD, USB Flash Drive, Flash Card и т.д.) и применяется в аппаратуре контроллера немеханических запоминающих устройств на основе микросхем памяти.
При проектировании интегральных схем как правило возникает необходимость в использовании так модулей блочной памяти (BRAM). Среди модификаций блочной памяти наиболее часто используемой является однопортовая память, которая одномоментно поддерживает обращение только с одной командой на чтение или запись данных. При этом блочная память используется как хранилище данных, к которой обращаются другие модули интегральной схемы. При обращении к памяти со стороны только одного модуля, конфликты могут возникнуть только при одновременном появлении операций чтения и записи, и эти конфликты разрешаются на стороне модуля, который осуществляет обращение к памяти. В случае использования памяти несколькими независимыми модулями интегральной схемы, конфликты, возникающие при обращении к памяти одновременно нескольких модулей, разрешить значительно сложнее, и это, как правило, требует от разработчика при проектировании одного модуля изначально учитывать схемы функционирования других модулей, чтобы избежать конфликтов.
Заявляемое техническое решение представляет собой механизм бесконфликтного использования одной памяти несколькими аппаратными модулями, при котором каждый модуль может проектироваться независимо от других.
Ниже приводится пример реализации изобретения на базе интегральной схемы, в которой одна память используется несколькими модулями.
Контроллеру устройства хранения данных поступают от внешнего устройства (хост) блоки данных (сектора) по шине шириной 64 бита.
Задачей контроллера является шифрование этих данных блочным шифром, хранение этих данных в своей блочной памяти и последующая перезапись их на внешний носитель данных (флеш-память), состоящая из 8 кристаллов, запись данных на которые и чтение данных из которых может производиться параллельно и независимо, при этом обмен данными с кристаллами идет порциями по 8 бит. При этом контроллер перед записью на кристалл должен закодировать зашифрованные сектора помехоустойчивым кодером. Для того, чтобы кодеры с шириной шины в 8 бит обеспечивали ту же производительность что и входная шина в 64 бита, число кодеров должно быть равно восьми, то есть у каждого кристалла есть свой кодер и кодеры могут работать независимо и параллельно. При этом процесс шифрования данных с последующим кодированием и записью на флеш-память представлет собой единый процесс записи данных с хоста на флеш-память.
Контроллер также обеспечивает обратный поток данных, который является процессом чтенияданных с флеш-памяти и передачи их хосту. В этом процессе хост обращается к контроллеру с запросом не чтение некоторых секторов с кристаллов микросхемы флеш-памяти. Контроллер находит, на каком из кристаллов записан данный сектор, считывает данные с флеш-памяти по шине в 8 бит и декодирует помехоустойчивым декодером, после чего передает декодированный сектор дешифратору, дешифратор дешифрует сектор и по 64-битной шине передает хосту. При этом, что у каждого кристалла имеется свой помехоустойчивый декодер, и декодеры могут работать независимо и параллельно.
Таким образом, в данном контроллере к одной блочной памяти, в которой хранятся зашифрованные сектора, обращаются сразу 18 различных независимых модулей: шифратор, дешифратор, 8 кодеров и 8 декодеров.
Для обеспечения бесконфликтной работы этих модулей с одной блочной памятью используется следующий механизм разделения времени. Для обеспечения работы с четырьмя типами устройств все время работы памяти делиться на 32-тактовые циклы. Такты 0, 4, 8, 12, 16, 20, 24, 28 выделяются шифратору, в эти такты шифратор может обращаться к памяти с запросами на запись зашифрованных данных. Такты 3, 7, 11, 15, 19, 23, 27, 31 также выделяются дешифратору, в эти такты дешифратор может обращаться к памяти с запросами на чтение зашифрованных данных для их последующей расшифровки. Такты 1, 5, 9, 13, 17, 21, 25, 29 выделяются блоку декодеров (каждый декодер из блока может обратиться к памяти один раз за цикл), причем декодеры обращаются к памяти только с запросами на запись. Такты 2, 6, 10, 14, 18, 22, 26, 30 выделяются блоку кодеров (аналогично, каждый кодер из блока может обратиться к памяти один раз за цикл), причем кодеры обращаются к памяти с запросами на чтение.
Поскольку шифратор может обращаться к памяти каждый четвертый такт, то за четыре такта в нем накапливается 4*64 = 256 бит данных, которые затем за один такт должны быть записаны в память. Таким образом, согласно этим расчетам ширина блочной памяти должна быть не менее 64 * 4 = 256 бит. Каждый кодер (или декодер) может обратиться к памяти не чаще одного раза в 32 такта, поэтому он должен обеспечить накопление данных за 32 такта и последующий обмен накопленным за один такт. Поскольку ширина шины кодеров и декодеров равна 8 бит, то ширина блочной памяти должна быть 8 * 32 = 256 бит. Таким образом, ширина блочной памяти контроллера равна256 двоичным разрядам.
При этом, блоки декодеров и шифратор обращаются к блочной памяти с запросами на запись, тогда как блок кодеров и дешифратор обращаются к блочной памяти с запросами на чтение.
При записи в блочную память между устройствами, осуществляющими запись данных, т.е. декодером или шифратором, и памятью устанавливается специальный модуль, являющийся накопителем, содержащий 2 регистра шириной 256 бит. В первом регистре накапливается информация (по 64 бита за такт от шифратора, и по 8 бит за такт от декодеров), и при накоплении в нём 256 бит информации, они перебрасываются во второй регистр, из которого в отведенный такт, информация записывается в блочную память, причем от шифратора информация в первый регистр поступает порциями в 64 бита, а от декодеров – порциями в 8 бит, а накопление идет соответственно 4 и 32 такта.. В блоке из 8 декодеров декодеров таких накопителей устанавливают 8, по одному на каждый декодер.
Аналогичным образом при чтении из блочной памяти между памятью и устройством, которому предназначены данные, т.е. дешифратором или кодером, необходимо устанавливается специальный модуль, который являющийся обратным накопителем, представляющим собой очередь с широким входом (в 256 бит) и узким выходом (64 бита для дешифратора и 8 бит для кодеров). Извлечение из очереди производится дешифратором или кодерами по мере необходимости, а загрузка в очередь происходит в соответствующий устройству такт, если в очереди достаточно места для 256 бит данных. В блоке из 8 кодеров содержится 8 обратных накопителей, по одному на каждый кодер.

Claims (1)

  1. Способ аппаратной реализации механизма использования одной памяти несколькими устройствами, характеризующийся тем, что время использования памяти разделяется между разными устройствами-потребителями в пропорциях, соответствующих производительности устройств, при этом ширина блочной памяти берется достаточной для того, чтобы устройства-потребители памяти могли бесперебойно функционировать с полученной информацией в период отсутствия доступа к памяти, отличающийся тем, что между устройствами, осуществляющими запись, и памятью устанавливают накопители, хранящие информацию для записи, представляющие собой два регистра, по ширине равных ширине памяти, в одном из которых накапливается информация от устройств, при заполнении передаваемая во второй регистр, из которого, в отведенный временной такт, информация записывается в блочную память, а между памятью и устройствами, осуществляющими чтение из памяти, устанавливают обратные накопители, представляющие собой очередь с входом, по ширине равным ширине памяти, и выходом, по ширине равным ширине шины устройства, извлечение из которой производится устройством по мере необходимости, а загрузка в очередь происходит в соответствующий устройству такт, если в очереди достаточно места.
RU2020143093A 2020-12-25 2020-12-25 Аппаратная реализация механизма использования одной памяти несколькими устройствами RU2749911C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2020143093A RU2749911C1 (ru) 2020-12-25 2020-12-25 Аппаратная реализация механизма использования одной памяти несколькими устройствами

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2020143093A RU2749911C1 (ru) 2020-12-25 2020-12-25 Аппаратная реализация механизма использования одной памяти несколькими устройствами

Publications (1)

Publication Number Publication Date
RU2749911C1 true RU2749911C1 (ru) 2021-06-21

Family

ID=76504694

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2020143093A RU2749911C1 (ru) 2020-12-25 2020-12-25 Аппаратная реализация механизма использования одной памяти несколькими устройствами

Country Status (1)

Country Link
RU (1) RU2749911C1 (ru)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2110838C1 (ru) * 1990-09-21 1998-05-10 Интернэшнл Бизнес Машинз Корпорейшн Устройство для оптимизации организации доступа к общей шине во время передачи данных с прямым доступом к памяти
US20030196058A1 (en) * 2002-04-11 2003-10-16 Ramagopal Hebbalalu S. Memory system for supporting multiple parallel accesses at very high frequencies
US20090003119A1 (en) * 2007-06-27 2009-01-01 Infineon Technologies Ag Pseudo dual-port memory
US8108625B1 (en) * 2006-10-30 2012-01-31 Nvidia Corporation Shared memory with parallel access and access conflict resolution mechanism
US20190095360A1 (en) * 2017-09-22 2019-03-28 Imagination Technologies Limited Sorting Memory Address Requests for Parallel Memory Access

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2110838C1 (ru) * 1990-09-21 1998-05-10 Интернэшнл Бизнес Машинз Корпорейшн Устройство для оптимизации организации доступа к общей шине во время передачи данных с прямым доступом к памяти
US20030196058A1 (en) * 2002-04-11 2003-10-16 Ramagopal Hebbalalu S. Memory system for supporting multiple parallel accesses at very high frequencies
US8108625B1 (en) * 2006-10-30 2012-01-31 Nvidia Corporation Shared memory with parallel access and access conflict resolution mechanism
US20090003119A1 (en) * 2007-06-27 2009-01-01 Infineon Technologies Ag Pseudo dual-port memory
US20190095360A1 (en) * 2017-09-22 2019-03-28 Imagination Technologies Limited Sorting Memory Address Requests for Parallel Memory Access

Similar Documents

Publication Publication Date Title
KR100385370B1 (ko) 개선된 메모리 시스템 장치 및 방법
CN103502958B (zh) 逻辑地址转译
US4369510A (en) Soft error rewrite control system
US9053009B2 (en) High throughput flash memory system
US8719491B2 (en) Encoding flash memory data with a randomizer using different seeds for different sectors
US9423960B2 (en) Methods of operating memory devices within a communication protocol standard timeout requirement
KR20130096673A (ko) 플래쉬 메모리에 액세스하는 방법 및 연관된 플래쉬 메모리 제어기
US7353333B2 (en) Laser drivers that provide double buffering of serial transfers
KR20050069218A (ko) 데이타를 섹터 단위로 랜덤하게 입출력할 수 있는 플래시메모리 시스템
EP2347418A1 (en) Logical unit operation
CN107423231B (zh) 用来管理一记忆装置的方法以及记忆装置与控制器
KR101496975B1 (ko) 고체 상태 디스크 및 이에 대한 입출력방법
RU2749911C1 (ru) Аппаратная реализация механизма использования одной памяти несколькими устройствами
RU2014134714A (ru) Способ записи и считывания данных
US9405674B2 (en) Address generating circuit and address generating method
TWI776351B (zh) 利用借助於進階加密標準處理電路之資料保護的資料存取方法、應用於記憶體裝置之記憶體控制器以及應用於記憶體裝置之記憶體控制器的進階加密標準處理電路
TWI807275B (zh) 用以管理快閃記憶體模組的方法、快閃記憶體控制器與電子裝置
US10929029B2 (en) Memory controller and method for accessing memory modules and processing sub-modules
KR100227740B1 (ko) 공유메모리를 이용한 데이터 액세스 제어장치
US20190205063A1 (en) Memory controller and method for accessing memory module
KR20160044850A (ko) 어드레스 디코딩 회로 및 그것을 포함하는 반도체 장치
TWI523016B (zh) 用來管理一記憶裝置之方法以及記憶裝置與控制器
US20210064466A1 (en) Non-volatile memory accessing method using data protection with aid of look-ahead processing, and associated apparatus
RU2752782C1 (ru) Способ записи секторных данных в кэш-память
Suthar How to Recover Deleted Data from SSD Drives after TRIM