![VHDLдеги жөнөкөй кэш контроллеринин дизайны: 4 кадам VHDLдеги жөнөкөй кэш контроллеринин дизайны: 4 кадам](https://i.howwhatproduce.com/images/001/image-1021-59-j.webp)
Мазмуну:
2025 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2025-01-23 14:51
![VHDLдеги жөнөкөй кэш контроллеринин дизайны VHDLдеги жөнөкөй кэш контроллеринин дизайны](https://i.howwhatproduce.com/images/001/image-1021-60-j.webp)
Мен муну үйрөтүп жатам, анткени VHDL кодун үйрөнүү жана кэш контроллерин иштеп чыгууну баштоо бир аз кыйын болду. Ошентип, мен нөлдөн баштап кэш контроллерин иштеп чыктым жана аны FPGAда ийгиликтүү сынап көрдүм. Мен бул жерде жөнөкөй түз картага түшүрүлгөн кэш контроллерин, ошондой эле кэш контроллерин сыноо үчүн бүт процессор-эс тутумунун моделин сунуштадым. Балдар, бул нускаманы өз кэш контроллерлериңизди иштеп чыгуу үчүн пайдалуу деп ишенем.
1 -кадам: өзгөчөлүктөр
![Мүнөздөмөлөр Мүнөздөмөлөр](https://i.howwhatproduce.com/images/001/image-1021-61-j.webp)
Булар биз иштеп чыга турган Cache Controllerдин негизги мүнөздөмөлөрү:
- Түз карта. (Associative Mapped Cache Controller издесеңиз бул шилтемеге өтүңүз)
- Бир банктуу, кэшти бөгөө.
- Жазуу хиттери боюнча жазуу саясаты.
- Жазуу жок жазуу боюнча саясатты бөлүштүрүү же жазуу.
- Жазуу буфери же башка оптимизация жок.
- Tag Array киргизилген.
Мындан тышкары, биз кэш эс тутумун жана негизги эс тутумун иштеп чыгабыз.
Кэш эстутумунун демейки (конфигурацияланган) өзгөчөлүктөрү:
- 256 байт бир банкалуу кэш.
- 16 Кэш линиясы, ар бир Кэш сызыгы (Блок) = 16 Байт.
Негизги эс тутумдун өзгөчөлүктөрү:
- Синхрондуу окуу/жазуу эс тутуму.
- Көп банкалуу Interleaved Memory - төрт эс тутум банкы.
- Ар бир банктын өлчөмү = 1 кБ. Демек, жалпы көлөмү = 4 кБ.
- Word (4 байт) даректүү эс тутуму 10-бит Адрес шинасы менен.
- Окуу үчүн жогорку өткөрүү жөндөмдүүлүгү. Маалымат сааты = 16 байтты бир саат циклинде окуңуз.
- Маалыматтардын туурасын жазуу = 4 байт.
ЭСКЕРТҮҮ: эгер сиз 4 тараптуу ассоциативдүү кэш контроллеринин дизайнын издесеңиз, менин жаңы инструктивдүүмдү текшериңиз
2 -кадам: Бүт системанын RTL көрүнүшү
![Бүт системанын RTL көрүнүшү Бүт системанын RTL көрүнүшү](https://i.howwhatproduce.com/images/001/image-1021-62-j.webp)
Top модулунун толук RTL өкүлчүлүгү сүрөттө көрсөтүлгөн (процессорду кошпогондо). Автобустар үчүн демейки мүнөздөмөлөр:
- Бардык маалыматтар автобустары 32 биттик автобустар.
- Дарек Bus = 32-биттик автобус (Бирок бул жерде эстутум аркылуу 10 бит гана даректелген).
- Маалыматтар блогу = 128 бит (Окуу үчүн кенен өткөрүү жөндөмдүү автобус).
- Бардык компоненттер бир эле саат менен башкарылат.
3 -кадам: Test Environment
Top Module тест столунун жардамы менен сыналган, ал жөн гана түтүксүз процессорду моделдейт (анткени бүтүндөй процессорду долбоорлоо оңой эмес !!). Test Bench эс тутумуна маалыматтарды окуу/жазуу өтүнүчтөрүн тез -тез жаратат. Бул процессор тарабынан аткарылган бардык программаларда кездешкен "Load" жана "Store" көрсөтмөлөрүн шылдыңдайт. Тесттин жыйынтыгы кэш контроллеринин иштөөсүн ийгиликтүү текшерди. Төмөндө байкалган тест статистикасы:
- Бардык Окуу/Жазуу Мисс жана Хит сигналдары туура түзүлгөн.
- Бардык Окуу/Жазуу операциялары ийгиликтүү болду.
- Маалыматтардын шайкешсиздиги/дал келбөөчүлүк көйгөйлөрү аныкталган жок.
- Дизайн Maxm үчүн ийгиликтүү текшерилди. Иштөөнүн саат жыштыгы = Xilinx Virtex-4 ML-403 тактасында 110 МГц (бүт система), 195 МГц кэш контроллери үчүн гана.
- Негизги эстутум үчүн блок -RAMлар чыгарылган. Башка бардык массивдер LUTsде ишке ашырылган.
4 -кадам: Тиркелген файлдар
Бул блог менен бул жерде төмөнкү файлдар тиркелет:
- . VHD файлдары Cache Controller, Cache Data Array, Main Memory System.
- Test Bench.
- Кэш контроллери боюнча документтер.
Эскертүүлөр:
- Бул жерде көрсөтүлгөн кэш контроллеринин өзгөчөлүктөрүн толук түшүнүү үчүн документтерди караңыз.
- Коддогу бардык өзгөртүүлөр башка модулдарга көз каранды. Ошентип, өзгөртүүлөр акылдуулук менен жасалышы керек. Мен берген бардык комментарийлерге жана аталыштарга көңүл буруңуз.
- Эгерде кандайдыр бир себептерден улам, Блок ОЗУнун эс тутуму боюнча жыйынтык чыгарылбаса, эс тутумдун көлөмүн КИЧИРТҮҮ, андан кийин файлдар боюнча дарек шинасынын туурасын өзгөртүү жана башкалар. Ошентип, ошол эле эстутум LUTs же Distributed RAM боюнча ишке ашырылышы мүмкүн. Бул маршруттун убактысын жана ресурстарын үнөмдөйт. Же болбосо, конкреттүү FPGA документациясына барыңыз жана Блок RAM үчүн ылайыктуу кодду таап, ошого жараша кодду түзөтүңүз жана ошол эле дарек шинасынын туурасынын өзгөчөлүктөрүн колдонуңуз. Altera FPGAлар үчүн бирдей техника.
Сунушталууда:
VHDLде Жөнөкөй Төрт Жактуу Ассоциативдүү Кэш Контроллеринин Дизайны: 4 Кадам
![VHDLде Жөнөкөй Төрт Жактуу Ассоциативдүү Кэш Контроллеринин Дизайны: 4 Кадам VHDLде Жөнөкөй Төрт Жактуу Ассоциативдүү Кэш Контроллеринин Дизайны: 4 Кадам](https://i.howwhatproduce.com/images/011/image-32050-j.webp)
VHDLдеги Төрт Жактуу Ассоциативдүү Кэш Контроллеринин Дизайны: Менин мурунку көрсөтмөмдө, биз жөнөкөй түз картага түшүрүлгөн кэш контроллерин кантип жасоону көрдүк. Бул жолу биз бир кадам алдыга жылабыз. Биз жөнөкөй төрт тараптуу ассоциативдүү кэш контроллерин иштеп чыгабыз. Артыкчылыгы? Сагынуу көрсөткүчү азыраак, бирок perfo баасында
VHDLдеги I2C Masterдин дизайны: 5 кадам
![VHDLдеги I2C Masterдин дизайны: 5 кадам VHDLдеги I2C Masterдин дизайны: 5 кадам](https://i.howwhatproduce.com/images/002/image-4092-42-j.webp)
VHDLдеги I2C Masterдин дизайны: Бул көрсөтмөдө, VHDLде жөнөкөй I2C мастеринин дизайны талкууланат. ЭСКЕРТҮҮ: толук сүрөттү көрүү үчүн ар бир сүрөттү басыңыз
VHDL жана Verilogдо жөнөкөй VGA контроллеринин дизайны: 5 кадам
![VHDL жана Verilogдо жөнөкөй VGA контроллеринин дизайны: 5 кадам VHDL жана Verilogдо жөнөкөй VGA контроллеринин дизайны: 5 кадам](https://i.howwhatproduce.com/images/002/image-4965-32-j.webp)
VHDL жана Verilogдо жөнөкөй VGA контроллеринин дизайны: Бул көрсөтмөдө биз RTLде жөнөкөй VGA контроллерин иштеп чыгалы деп жатабыз. VGA Controller - бул VGA дисплейлерин айдоого арналган санариптик схема. Ал Frame Bufferден (VGA Memory) окулат, ал көрсөтүлө турган кадрды билдирет жана керектүү нерселерди жаратат
VHDLдеги SPI Masterдин дизайны: 6 кадам
![VHDLдеги SPI Masterдин дизайны: 6 кадам VHDLдеги SPI Masterдин дизайны: 6 кадам](https://i.howwhatproduce.com/images/002/image-5866-8-j.webp)
VHDLдеги SPI Masterдин дизайны: Бул көрсөтмөдө биз VHDLде нөлдөн баштап SPI Bus Masterдин дизайнын түзөбүз
VHDLдеги UART дизайны: 5 кадам
![VHDLдеги UART дизайны: 5 кадам VHDLдеги UART дизайны: 5 кадам](https://i.howwhatproduce.com/images/002/image-5928-40-j.webp)
VHDLдеги UART дизайны: UART универсалдуу асинхрондук кабыл алуучу өткөргүчтү билдирет. Бул эң популярдуу жана эң жөнөкөй сериялык байланыш протоколу. Бул көрсөтмөдө сиз VHDLде UART модулун кантип иштеп чыгууну үйрөнөсүз