RU2475822C1 - Подсистема памяти ядра микропроцессора - Google Patents

Подсистема памяти ядра микропроцессора Download PDF

Info

Publication number
RU2475822C1
RU2475822C1 RU2011149889/08A RU2011149889A RU2475822C1 RU 2475822 C1 RU2475822 C1 RU 2475822C1 RU 2011149889/08 A RU2011149889/08 A RU 2011149889/08A RU 2011149889 A RU2011149889 A RU 2011149889A RU 2475822 C1 RU2475822 C1 RU 2475822C1
Authority
RU
Russia
Prior art keywords
buffer
data
memory
cache
level
Prior art date
Application number
RU2011149889/08A
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 RU2011149889/08A priority Critical patent/RU2475822C1/ru
Application granted granted Critical
Publication of RU2475822C1 publication Critical patent/RU2475822C1/ru

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

Изобретение относится к области вычислительной техники и может использоваться в микропроцессорных системах с подсистемами памяти, где необходимо высокое быстродействие.
Известен блок управления памятью в составе гибридного микропроцессора, включающего центральный процессор, системный контроллер, внешнюю память, двухуровневую кэш-память (Патент RU №2359315, кл. G06F 9/30, опубл. 20.06.2009).
Недостатком описанного блока является низкая производительность системы, низкая ее помехоустойчивость.
Наиболее близким по технической сути и достигаемому техническому результату является подсистема памяти, связанная с центральным процессором, системным контроллером, внешней памятью и включающая кэш-память, набор буферов данных и инструкций, состоящий из буфера для сохраняемых данных, буфера для обратных записей и буфера для загружаемых данных (Патент US №2010/0211746 А1, кл. G06F 12/08, опубл. 16.02.2010).
Недостатком описанной подсистемы памяти ядра микропроцессора является низкая производительность системы, низкая помехоустойчивость системы, не решена задача ускорения загрузки данных из основной памяти в кэш-память; при чтении по адресам данных, содержащихся в буфере для сохраняемых данных, данные сначала будут выгружены в кэш-память и только затем будут считаны в буфер для загружаемых данных, что приводит к дополнительным задержкам.
Технический результат от использования данного изобретения состоит в повышении производительности устройства, повышении помехоустойчивости системы и исключении дополнительных задержек при считывании и загрузке данных.
Указанный технический результат достигается тем, что в подсистеме памяти, связанной с центральным процессором, системным контроллером внешней памятью и включающей кэш-память, набор буферов данных и инструкций, состоящей из буфера для сохраняемых данных, буфера для обратных записей, буфера для загружаемых данных, подсистема содержит дополнительные буферы для сохраняемых данных, при этом кэш-память выполнена двухуровневой, первый уровень которой соединен с центральным процессором, кэш-памятью второго уровня и буфером для обратных записей, а второй уровень соединен с буферами для сохраняемых данных, с буфером для загружаемых данных и буфером для обратных записей, причем буфер для сохраняемых данных, попавших в кэш память второго уровня, содержит биты четности для помехоустойчивого кодирования и имеет связь с буфером для обратных записей,
а также тем, что кэш-память первого уровня содержит память данных и память для инструкций, которая связана с буфером для обратных записей,
и тем, что буфер для загружаемых данных расположен между кэш-памятью второго уровня и системным контроллером.
Наличие буфера для загружаемых данных, расположенного между кэш-памятью второго уровня и системным контроллером, благодаря предварительной выборке позволяет избежать задержек при чтении данных из памяти. Наличие буферов для сохраняемых данных позволяет без дополнительных задержек обрабатывать команды сохранения следующие подряд. Наличие битов четности в буфере для сохраняемых данных повышает помехоустойчивость системы.
Изобретение поясняется чертежом, где на фиг.1 изображена блок-схема вычислительной системы, включающей подсистему памяти микропроцессорной системы.
Вычислительная система состоит из центрального процессора (ЦП) 1, подсистемы памяти ядра микропроцессора 2, системного контроллера (СК) 3 и внешней памяти 4. Подсистема памяти ядра микропроцессора 2 состоит из кэш-памяти первого уровня инструкций (КПИ1) 5 и данных (КПД1) 6, кэш-памяти второго уровня (КП2) 7 и интеллектуальных буферов для данных и инструкций 8, 9, 10, 11, 12.
Подсистема памяти ядра микропроцессора работает следующим образом. При декодировании ЦП 1 команды сохранения данные с выхода ЦП подаются на вход входного буфера для сохраняемых данных (БВС) 8, состоящего из двух ячеек БВС1 и БВС2. В рассматриваемом случае ячейки имеют размер 64 разряда. Данные записываются в свободную ячейку, если заняты обе, запись данных будет задержана, пока не освободится одна из ячеек. Одновременно с записью данных в ячейку БВС1 или БВС2 проверяется наличие запрашиваемой строки в КПД1 6 и КП2 7.
В случае обнаружения запрашиваемой строки в КП2 7 (то есть зафиксировано попадание в КП2 7), данные с выхода буфера 7 подаются на вход буфера для попавших в кэш-память второго уровня данных (БПС) 9, состоящего в данном случае из двух ячеек по 128 бит, то есть по половине кэш-линии. Это ограничение связано с тем, что за один такт в память данных КП2 7 возможна запись не более чем 128 бит. Буфер содержит биты четности для помехоустойчивого кодирования (код Хэмминга или модифицированный код Хэмминга-Хсяо). Так же как и для буфера 8 выбирается свободная ячейка буфера 9 БПС1 или БПС2. При освобождении памяти данных КП2 7 с выхода буфера БПС 9 будет выдана хранящаяся в нем информация на вход КП2 7. В буфере присутствует механизм «склейки», который позволяет объединять данные от двух и более разных запросов по соседним адресам в одной ячейке (при условии, что все эти запросы идут в одну половину строки КП2). Это позволяет сократить количество тактов записи, в отличие от буфера без «склейки», в котором подобные обращения обрабатываются за два и более тактов. БПС 9 также позволяет сократить время обработки запроса для ситуации обратной записи в условиях большой плотности следования команд сохранения. При поступлении запроса на загрузку/сохранение с промахом в КП2 7, требующего обратной записи в память, в случае отсутствия БПС 9 необходимо сначала произвести запись всех данных от предыдущих запросов на сохранение и только затем считать из КП2 7 данные для обратной записи. БПС 9 позволяет отложить запись данных в КП2 7 от предыдущих команд сохранения и немедленно считать данные для обратной записи. Если хотя бы в одной ячейке БПС1 или БПС2 находятся данные по адресу обратной записи, буфер напрямую выдает их на шину с выхода БПС 9 на вход БОЗ 10, минуя стадию записи в память данных КП2 7. Затем ячейка БПС1 или БПС2 помечается как недействительная для того, чтобы избежать лишней записи в память данных КП2 7. В БПС 9 имеется функция «прослушивания», т.е. определения того, нужны ли данные и тэги (в случае команды CACHE), находящиеся в ячейках буфера БПС1 или БПС2 для обработки текущего запроса. При этом, если данные также будут обнаружены в КПД1 6, то записаны они будут в КПД1 6 с выхода ЦП 1.
В случае не обнаружения запрашиваемой строки в КП2 7, но обнаружения ее в КПД1 6 (то есть зафиксировано попадание в КПД1 6 и не попадание в КП2 7), данные с выхода буфера БВС 8 поступают на вход буфера для не попавших или некэшируемых сохраняемых данных (БНС) 12 в одну из четырех 64-разрядных свободных ячеек БНС1-БНС4.
В случае не обнаружения запрашиваемой строки в КП2 7 и КПД1 6 (то есть зафиксировано не попадание в КПД1 6 и КП2 7), данные находятся в буфере БВС 8 до тех пор, пока строка из памяти 4 не подтянется в КП2 7, затем данные с выхода буфера БВС 8 поступают на вход КП2 7.
При обращении на запись с некэшируемой политикой, данные с выхода буфера БВС 8 поступают на вход буфера для не попавших или некэшируемых сохраняемых данных (БНС) 12. Выход буфера БНС 12 связан с входом СК 3.
В случае обратной записи данные с выхода КП2 7 будут поданы на вход буфера для обратных записей (БОЗ) 10, где будет выбрана одна из свободных ячеек БОЗ1 или БОЗ2. Каждая ячейка рассчитана на 64 бита данных. Выход буфера связан со входом СК 3. Если в БОЗ1 или БОЗ2 будут обнаружены инструкции, запрашиваемые ЦП 1, то с выхода БОЗ10 они будут поданы на вход КПИ1 5. Буфер позволяет не блокировать следующие запросы при единичной обратной записи. При этом, если заполнены обе ячейки БОЗ1 и БОЗ2, поступление следующих команд загрузки/сохранения задерживается до того момента, пока данные от первого запроса не будут записаны во внешнюю память 4.
При запрашивании ЦП 1 данных не попавшие в КПД1 6 запросы подаются в КП2 7 и на вход буфера для загружаемых данных (БЗ) 11. После трех идущих подряд не попавших в КП2 7 запросов и при поступлении в КПД1 6 двух подряд не попавших запросов на загрузку данных буфер выполняет предвыборку данных. В первом случае буфер БЗ 11 анализирует входные запросы и считает количество промахов в КП2 7, после трех подряд не попавших запросов БЗ 11 вычисляет следующий адрес и передает данные по предсказанному адресу с выхода СК 3 на вход БЗ 11. В другом случае второй запрос передается в БЗ 11 до завершения обработки первого запроса, и только после этого буфер БЗ 11 проверят наличие данных для второго запроса в КП2 7, если данные отсутствуют в КП2, то БЗ 11 начинает предварительную выборку данных с выхода СК 3 на вход БЗ 11. Начитав данные, БЗ 11 ожидает запроса от ЦП 1 или КПД 1 6 на их загрузку. Если адрес следующего запроса от ЦП 1 совпадает с адресом данных, считанных БЗ 11 (ситуация попадания в буфер предварительного считывания), то происходит выдача данных с выхода БЗ 11 на вход КПД1 6 и одновременно запись в КП2 7 с выхода БЗ 11 через вход КП2 7. Затем буфер снова вычисляет адрес и выставляет запрос на считывание данных из памяти 4. В случае предвыборки данных для второго запроса, не попавшего в КПД1 6, после попадания в БЗ 11 вычисления следующего адреса и выставления запроса на считывание данных из памяти 4 не происходит. При несовпадении адреса данных, считанных буфером БЗ 11, и адреса на загрузку данных от ЦП1 (ситуация промаха в буфер предварительного считывания) данные в буфере БЗ 11 помечаются как недействительные и вычисления следующего адреса и выставления запроса на предварительную выборку данных в СК 3 не происходит. Далее буфер БЗ 11 снова начинает анализировать поступающие запросы и считать количество промахов в КП2 7. Вычисление следующего адреса и выставление запроса на предварительную выборку данных происходит после двух подряд не попавших следующих запросов (первым запросом считается запрос, вызвавший промах в БЗ 11).
Аналогичный механизм реализован и для запросов от инструкций: данные с выхода БЗ 11 подаются на вход КПИ1 5, но не записываются в память данных КП2 7. Запросы от команд загрузки более приоритетные, поэтому при прочих равных условиях предварительная выборка данных будет выполняться для операции загрузки.
Описанная подсистема памяти ядра микропроцессора позволяет повысить производительность и помехоустойчивость системы по сравнению с известными подсистемами и исключить дополнительные задержки при считывании и загрузке данных.

Claims (3)

1. Подсистема памяти, связанная с центральным процессором, системным контроллером, внешней памятью и включающая кэш-память, набор буферов данных и инструкций, состоящий из буфера для сохраняемых данных, буфера для обратных записей, буфера для загружаемых данных, отличающаяся тем, что она содержит дополнительные буферы для сохраняемых данных, при этом кэш-память выполнена двухуровневой, первый уровень которой соединен с центральным процессором, кэш-памятью второго уровня и буфером для обратных записей, а второй уровень соединен с буферами для сохраняемых данных, с буфером для загружаемых данных и буфером для обратных записей, причем буфер для сохраняемых данных, попавших в кэш-память второго уровня, содержит биты четности для помехоустойчивого кодирования и имеет связь с буфером для обратных записей.
2. Подсистема памяти по п.1, отличающаяся тем, что кэш-память первого уровня содержит память данных и память для инструкций, которая связана с буфером для обратных записей.
3. Подсистема памяти по п.1, отличающаяся тем, что буфер для загружаемых данных расположен между кэш-памятью второго уровня и системным контроллером.
RU2011149889/08A 2011-12-08 2011-12-08 Подсистема памяти ядра микропроцессора RU2475822C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2011149889/08A RU2475822C1 (ru) 2011-12-08 2011-12-08 Подсистема памяти ядра микропроцессора

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2011149889/08A RU2475822C1 (ru) 2011-12-08 2011-12-08 Подсистема памяти ядра микропроцессора

Publications (1)

Publication Number Publication Date
RU2475822C1 true RU2475822C1 (ru) 2013-02-20

Family

ID=49121126

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2011149889/08A RU2475822C1 (ru) 2011-12-08 2011-12-08 Подсистема памяти ядра микропроцессора

Country Status (1)

Country Link
RU (1) RU2475822C1 (ru)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0793178A2 (en) * 1996-02-27 1997-09-03 Sun Microsystems, Inc. Writeback buffer and copyback procedure in a multi-processor system
RU2359315C2 (ru) * 2007-04-28 2009-06-20 Учреждение Российской академии наук Научно-исследовательский институт системных исследований РАН (НИИСИ РАН) Микропроцессор гибридный
US20090300294A1 (en) * 2008-05-30 2009-12-03 Moyer William C Utilization of a store buffer for error recovery on a store allocation cache miss
RU2375745C2 (ru) * 2005-02-03 2009-12-10 Квэлкомм Инкорпорейтед Энергоэффективный механизм упреждающей выборки инструкций
RU2390855C2 (ru) * 2005-03-23 2010-05-27 Квэлкомм Инкорпорейтед Индикатор изменений для уменьшения потребления энергии при неудачных обращениях к кэш-памяти
US20100211746A1 (en) * 2009-02-17 2010-08-19 Fujitsu Microelectronics Limited Cache device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0793178A2 (en) * 1996-02-27 1997-09-03 Sun Microsystems, Inc. Writeback buffer and copyback procedure in a multi-processor system
RU2375745C2 (ru) * 2005-02-03 2009-12-10 Квэлкомм Инкорпорейтед Энергоэффективный механизм упреждающей выборки инструкций
RU2390855C2 (ru) * 2005-03-23 2010-05-27 Квэлкомм Инкорпорейтед Индикатор изменений для уменьшения потребления энергии при неудачных обращениях к кэш-памяти
RU2359315C2 (ru) * 2007-04-28 2009-06-20 Учреждение Российской академии наук Научно-исследовательский институт системных исследований РАН (НИИСИ РАН) Микропроцессор гибридный
US20090300294A1 (en) * 2008-05-30 2009-12-03 Moyer William C Utilization of a store buffer for error recovery on a store allocation cache miss
US20100211746A1 (en) * 2009-02-17 2010-08-19 Fujitsu Microelectronics Limited Cache device

Similar Documents

Publication Publication Date Title
US9280474B2 (en) Adaptive data prefetching
US8683136B2 (en) Apparatus and method for improving data prefetching efficiency using history based prefetching
US8650354B2 (en) Prefetching tracks using multiple caches
US8706969B2 (en) Variable line size prefetcher for multiple memory requestors
US8775729B2 (en) Prefetching data tracks and parity data to use for destaging updated tracks
US8892822B2 (en) Selectively dropping prefetch requests based on prefetch accuracy information
US20070180158A1 (en) Method for command list ordering after multiple cache misses
US20150143045A1 (en) Cache control apparatus and method
JP2009540411A (ja) 高速で安価なストア−ロード競合スケジューリング及び転送機構
US11188256B2 (en) Enhanced read-ahead capability for storage devices
KR102268601B1 (ko) 데이터 포워딩을 위한 프로세서, 그것의 동작 방법 및 그것을 포함하는 시스템
US20080140934A1 (en) Store-Through L2 Cache Mode
CN116324745A (zh) 读取可选命令和写入可选命令
JP4019073B2 (ja) キャッシュ可能なdma
US9003123B2 (en) Data processing apparatus and method for reducing storage requirements for temporary storage of data
US10152410B2 (en) Magnetoresistive random-access memory cache write management
US9223714B2 (en) Instruction boundary prediction for variable length instruction set
KR20100005539A (ko) 캐시 메모리 시스템 및 캐시의 프리페칭 방법
JP7170093B2 (ja) 記憶デバイスのための改良された先読み能力
US11449428B2 (en) Enhanced read-ahead capability for storage devices
RU2475822C1 (ru) Подсистема памяти ядра микропроцессора
US8627008B2 (en) Memory access prediction
JP2001249846A (ja) キャッシュメモリ装置及びデータ処理システム
US10402324B2 (en) Memory access for busy memory by receiving data from cache during said busy period and verifying said data utilizing cache hit bit or cache miss bit
US20200110702A1 (en) Operating different processor cache levels

Legal Events

Date Code Title Description
PD4A Correction of name of patent owner
MM4A The patent is invalid due to non-payment of fees

Effective date: 20151209

NF4A Reinstatement of patent

Effective date: 20160827

PC41 Official registration of the transfer of exclusive right

Effective date: 20160829

PC41 Official registration of the transfer of exclusive right

Effective date: 20180813