Мазмұны:
- 1 -қадам: Техникалық сипаттамалар
- 2 -қадам: бүкіл жүйенің RTL көрінісі
- 3 -қадам: тест нәтижелері
- 4 -қадам: Қосылған файлдар
Бейне: VHDL-де кэшті ассоциативті кэш-контроллердің төрт жолды жиынтығының дизайны: 4 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Бұрынғы нұсқаулықта біз кэшті басқаратын қарапайым карта контроллерін қалай жасау керектігін көрдік. Бұл жолы біз бір қадам алға жылжып отырмыз. Біз қарапайым төрт жолды ассоциативті кэш контроллерін жасаймыз. Артықшылығы? Өткізу жылдамдығы аз, бірақ өнімділікке байланысты. Менің алдыңғы блогым сияқты, біз кэш контроллерін тексеру үшін бүкіл процессорды, негізгі жад пен кэш ортасын жобалайтын боламыз. Болашақта бұл түсініктерді түсінуге және жеке кэш контроллерлерін жасауға пайдалы сілтеме деп ойлаймын деп үміттенемін. Процессордың моделі (тестілік үстел) мен негізгі жады жүйесі менің алдыңғы блогыммен бірдей болғандықтан, мен оларды енді түсіндірмеймін. Бұл туралы толық ақпарат алу үшін алдыңғы нұсқаулыққа жүгініңіз.
1 -қадам: Техникалық сипаттамалар
Мұнда ұсынылған кэш контроллерінің сипаттамаларын жылдам қарау:
- Төрт жақты ассоциативті кэш контроллері (егер тікелей картографиялық кэш контроллерін іздесеңіз, осы сілтемеге өтіңіз).
- Бір банкті, кэшті блоктау.
- Жазу хиттері бойынша жазу саясаты.
- Жазуды жіберіп алу туралы жазу саясаты.
- Tree Pseudo-LRU (pLRU) ауыстыру саясаты.
- Контроллер ішіндегі массивті белгілеңіз.
- Конфигурацияланатын параметрлер.
Кэш жады мен негізгі жад бойынша әдепкі сипаттамалар менің алдыңғы нұсқаулықтармен бірдей. Оларға сілтеме жасаңыз.
2 -қадам: бүкіл жүйенің RTL көрінісі
Жоғарғы модульдің толық RTL ұсынуы суретте көрсетілген (процессорды қоспағанда). Автобустардың стандартты сипаттамалары:
- Барлық деректер шиналары-32 биттік шиналар.
- Адрестік шина = 32 биттік шина (бірақ мұнда тек 10 бит жады арқылы адрестеледі).
- Деректер блогы = 128 бит (оқуға арналған кең жолақты ені).
- Барлық компоненттер бір сағатпен басқарылады.
3 -қадам: тест нәтижелері
Жоғарғы модуль біз соңғы нұсқаулықтағыдай құбырсыз процессорды модельдейтін сынақ үстелінің көмегімен сыналды. Сынақ тақтасы жадқа деректерді оқу/жазу сұрауларын жиі жасайды. Бұл процессормен орындалатын барлық бағдарламаларда кездесетін «Load» және «Store» әдеттегі нұсқауларын мазақ етеді.
Сынақ нәтижелері кэш контроллерінің жұмысын сәтті тексерді. Төменде байқалған сынақ статистикасы берілген:
- Барлық оқу/жазу жіберу және жіберу сигналдары дұрыс жасалған.
- Деректерді оқу/жазу операцияларының барлығы төрт жолмен сәтті болды.
- pLRU алгоритмі кэш жолдарын ауыстыру үшін сәтті тексерілді.
- Деректердің сәйкес келмеуі/сәйкессіздік проблемалары анықталмады.
- Дизайн Maxm үшін сәтті тексерілді. Жұмыс жиілігінің жиілігі = Xilinx Virtex-4 ML-403 тақтасында 100 МГц (бүкіл жүйе), тек кэш контроллері үшін 110 МГц.
- Негізгі жады үшін блок -оперативті жады шығарылды. Барлық басқа массивтер LUT -те орындалды.
4 -қадам: Қосылған файлдар
Бұл блогта келесі файлдар тіркелген:
- . VHD файлдар кэш контроллері, кэш деректер жиыны, негізгі жад жүйесі.
- Сынақ орындығы.
- Кэш контроллері туралы құжаттама.
Ескертулер:
- Мұнда ұсынылған кэш контроллерінің сипаттамаларын толық түсіну үшін құжаттаманы қараңыз.
- Кодтағы кез келген өзгерістер басқа модульдерге тәуелді. Сондықтан, өзгерістер ақылға қонымды түрде жасалуы керек.
- Мен берген барлық түсініктемелер мен тақырыптарға назар аударыңыз.
- Егер қандай да бір себептермен Жедел жадты блоктау негізгі жады үшін жасалмаса, жад көлемін кішірейтіңіз, содан кейін файлдар бойынша адрестік шиналар енінің өзгеруі және т.б. Сол жадты LUT немесе таратылған жедел жадыға енгізуге болады. Бұл бағыттау уақыты мен ресурстарды үнемдеуге мүмкіндік береді. Немесе нақты FPGA құжаттамасына өтіңіз және Block RAM үшін сәйкес келетін кодты табыңыз және сәйкесінше кодты өңдеңіз және сол мекенжай шинасының ені сипаттамаларын қолданыңыз. Altera FPGA үшін бірдей әдіс.
Ұсынылған:
VHDL бағдарламаланатын үзіліс контроллерінің дизайны: 4 қадам
VHDL -де бағдарламаланатын үзіліс контроллерінің дизайны: Мен бұл блогтан алатын жауаптардың түріне таң қаламын. Балалар, менің блогыма кіріп, өз білімдерімді сіздермен бөлісуге ынталандырғаныңыз үшін рахмет. Бұл жолы мен барлық SOC -ларда көретін тағы бір қызықты модульдің дизайнын ұсынамын - Interrupt C
VHDL -де қарапайым кэш контроллерінің дизайны: 4 қадам
VHDL -дегі қарапайым кэш -контроллердің дизайны: Мен бұл нұсқаулықты жазып отырмын, себебі кэш -контроллерді үйрену мен жобалауды бастау үшін VHDL -ге сілтеме жасау қиынға соқты. Мен кэш -контроллерді нөлден бастап ойлап таптым және оны FPGA -да сәтті сынап көрдім. Менде п
VHDL -де I2C Master дизайны: 5 қадам
VHDL -дегі I2C шеберінің дизайны: Бұл нұсқаулықта VHDL -де қарапайым I2C шеберінің дизайны талқыланады. ЕСКЕРТПЕ: толық кескінді көру үшін әр суретті басыңыз
VHDL мен Verilog -та қарапайым VGA контроллерінің дизайны: 5 қадам
VHDL мен Verilog -та қарапайым VGA контроллерінің дизайны: Бұл нұсқаулықта біз RTL -де қарапайым VGA контроллерін құрастырамыз. VGA контроллері - бұл VGA дисплейлерін басқаруға арналған сандық схема. Ол кадрдың буферінен (VGA жады) оқылады, ол көрсетілетін кадрды көрсетеді және қажет етеді
VHDL -де SPI Master дизайны: 6 қадам
VHDL -де SPI шеберінің дизайны: Бұл нұсқаулықта біз SPH автобус шеберін нөлден VHDL -де жобалайтын боламыз