Устройство загрузки/записи и tlb
Устройство загрузки/записи содержит очередь адресов, модули вычисления адреса и преобразования виртуальных адресов в физические (TLB), стек адресов, буфер записи и кэш-память данных первого уровня. Устройство загрузки/записи выполняет команды загрузки, записи, предварительной выборки, а также команды работы с кэш-памятью.
Выполнение всех команд загрузки и записи начинается с трехтактной последовательности, во время которой осуществляется выдача команды, вычисление виртуального адреса и его преобразование в физический. Преобразование адреса осуществляется во время выполнения команды только однажды. Производится обращение к кэш-памяти, а пересылка требуемых данных завершается при наличии данных в кэш-памяти первого уровня.
В случае промаха или занятости разделяемого порта регистрового файла, обращение к КЭШу данных и к тегу должно быть повторено после поступления данных либо из кэш-памяти второго уровня, либо из основной памяти.
TLB содержит 64 строки и выполняет преобразование виртуального адреса в физический. Виртуальный адрес для преобразования поступает либо из устройства вычисления адреса, либо из счетчика команд.
C фирменной линейкой 64- х разрядных ЦП Intel все немного сложнее:
- Процессор I 86486 начал выполнять основные команды пользователя за такт. Он в определенном смысле является RISC процессорами.
- 64 –х разрядная архитектура цельночисленного АЛУ для массовых применений была слабо востребована.
- Поэтому фирма свое разработки RISC процессоров проводила, скорее как ЦПС (9900, IA Skale).
· 64 –х разрядный процессор заложила как серверный, почти игнорируя 32-х разрядные приложения (архитектура IA-64).
· После успеха 64-х разрядной архитектуры фирмы AMD, развивающей IA 32, очередную версию Pentium 4 довела до 64-х разрядной архитектуры.
К началу 2000-х годов стало очевидно, что 32-битное адресное пространство архитектуры x86 ограничивает производительность приложений, работающих с большими объёмами данных. 32-разрядное адресное пространство позволяет процессору осуществлять непосредственную адресацию лишь 4 Гб данных, этого может оказаться недостаточным для некоторых приложений, связанных, например, с обработкой видео или обслуживанием баз данных. На рынке 64-х разрядные процессоры DEC, IBM, Sun явно лидировали по быстродействию. Intel предложила архитектуру, которая по направлениям RISC архитектуры были очень обнадеживающими, добавив еще и новшества VLIW архитектуры. Intel разработала новую архитектуру IA-64 — основу семейства процессоров Itanium. Рынок начал перестраиваться. Лидеры разработки 64-х разрядных процессоров, наученные опытом динамики 32-х разрядных, заявили о прекращении развития своих архитектур. DEC продала ведущую полупроводниковую фабрику корпорации Intel. Но в IA-64 для обеспечения обратной совместимости со старыми приложениями, использующими 32-разрядный код, был предусмотрен режим эмуляции и довольно слабый. На практике данный режим работы оказался чрезвычайно медленным. И конкуренция на рынке 64-х разрядных архитектур возросла вновь.
Компания AMD предложила альтернативное решение проблемы увеличения разрядности процессора. Вместо того чтобы изобретать совершенно новую систему команд, было предложено ввести 64-разрядное расширение к уже существующей 32-разрядной архитектуре x86. Первоначально новая архитектура называлась x86-64, позже она была переименована в AMD64. Первоначально новый набор инструкций поддерживался процессорами семейств Opteron, Athlon 64 и Turion 64 компании AMD. Успех процессоров, использующих технологию AMD64, наряду с вялым интересом к архитектуре IA-64, побудили Intel лицензировать набор инструкций AMD64. При этом был добавлен ряд специфических инструкций, не присутствовавших в изначальном наборе AMD64. Новая версия архитектуры получила название EM64T.
В литературе и названиях версий своих продуктов компании Microsoft и Sun используют объединённое именование AMD64/EM64T, когда речь заходит о 64-разрядных версиях их операционных систем Windows и Solaris соответственно. В то же время, поставщики программ для операционных систем GNU/Linux, BSD используют метки «x86-64» или «amd64», Mac OS X использует метку «x86_64», если необходимо подчеркнуть, что данное ПО использует 64-разрядные инструкции.