Linux Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π½Π° Intel 4004, ΠΏΠ΅Ρ€Π²ΠΎΠΌ коммСрчСском микропроцСссорС

ΠŸΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΉ запуск ядра Linux с rootfs-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· Debian Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΌ Π² 1971 Π³ΠΎΠ΄Ρƒ 4-разрядном процСссорС Intel 4004, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ считаСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ коммСрчСски выпускаСмым микропроцСссором Π½Π° ΠΎΠ΄Π½ΠΎΠΌ кристаллС. ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ содСрТит всСго 2300 транзисторов, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ 46 инструкций ΠΈ обСспСчиваСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ 60 тысяч ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² сСкунду.

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Intel 4004 ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Π΅ ограничСния ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π°Π΄Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒ лишь 4 ΠšΠ‘ постоянной памяти, вмСсто прямого запуска Linux Π±Ρ‹Π»Π° использована идСя написания эмулятора процСссора MIPS R3000, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Linux. Π Π°Π±ΠΎΡ‚Ρƒ услоТняло Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ для Intel 4004 Π½Π΅ сущСствуСт ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создано компиляторов для языка Π‘ΠΈ, поэтому эмулятор ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π° ассСмблСрС. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ€Π°Π±ΠΎΡ‚Π° Π±Ρ‹Π»Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π° Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ нСпосрСдствСнно Π½Π° Ρ‡ΠΈΠΏΠ΅ Intel 4004 запускался эмулятор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ выполнял ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·Π΅ ядра Linux.

MIPS Π²Ρ‹Π±Ρ€Π°Π½ ΠΊΠ°ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ для эмуляции, ΡƒΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ Π² ограничСния Intel 4004 ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ доступной памяти. НапримСр, созданию эмулятора ARM мСшал Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠΉ сдвиг ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ², RISCV — Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹ адрСсации, x86 — большой расход памяти Π½Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ инструкций, PPC — общая ΡƒΡΠ»ΠΎΠΆΠ½Ρ‘Π½Π½ΠΎΡΡ‚ΡŒ эмуляции ΠΏΡ€ΠΈ нСбольшом Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ памяти.

Для запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ систСмС Intel 4004 Π²Π½Π°Ρ‡Π°Π»Π΅ Π±Ρ‹Π»Π° сформирована ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ°Ρ ΠΏΠ»Π°Ρ‚Π°, состоящая ΠΈΠ· микропроцСссора Intel 4004, Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° Intel 4201, Ρ‡ΠΈΠΏΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти Intel 4002-1, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 20 Π±Π°ΠΉΡ‚ΠΎΠ², ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° постоянной памяти Intel 4289 ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ATMEGA48, ΡΠΈΠΌΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΡΡ‚ΠΎΡΠ½Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π’ процСссС развития ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π° Π±ΠΎΠ»Π΅Π΅ слоТная ΠΏΠ»Π°Ρ‚Π°, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π°Ρ ΠΏΠ°ΠΌΡΡ‚ΡŒ для размСщСния запускаСмого Π² эмуляторС Linux-окруТСния ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π°Ρ ΡΠΈΠΌΡƒΠ»ΡΡ†ΠΈΡŽ постоянной памяти, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ SD-ΠΊΠ°Ρ€Ρ‚Ρƒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, для провСдСния экспСримСнтов ΠΈ упрощСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° соврСмСнных систСмах Π±Ρ‹Π» написан эмулятор Ρ‡ΠΈΠΏΠ° Intel 4004.

Linux Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π½Π° Intel 4004, ΠΏΠ΅Ρ€Π²ΠΎΠΌ коммСрчСском микропроцСссорС
Linux Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π½Π° Intel 4004, ΠΏΠ΅Ρ€Π²ΠΎΠΌ коммСрчСском микропроцСссорС

Из-Π·Π° ΠΌΠ°Π»ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Intel 4004 эмулятор получился ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ — ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ сСкунды Π² эмулируСмом ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»Π° ΠΏΠΎΡ‡Ρ‚ΠΈ 4 часов вычислСний Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ систСмС с процСссором Intel 4004. НапримСр, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ тСстового прилоТСния для отрисовки мноТСства ΠœΠ°Π½Π΄Π΅Π»ΡŒΠ±Ρ€ΠΎΡ‚Π° с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ 13 x 40 ΠΏΡ€ΠΈ использовании вычислСний с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой заняло 30 Π΄Π½Π΅ΠΉ, Π° ΠΏΡ€ΠΈ использованиСм цСлочислСнной Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ — 9 часов.

ПослС внСсСния ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Linux Π² ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ заняла Π±ΠΎΠ»Π΅Π΅ 8 Π΄Π½Π΅ΠΉ. ΠŸΡ€ΠΈ записи ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π΅ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ использовалось ускорСниС Π² 120 Ρ€Π°Π· (ΠΎΠ΄Π½Π° сСкунда Π½Π° Π²ΠΈΠ΄Π΅ΠΎ соотвСтствуСт 2 ΠΌΠΈΠ½ΡƒΡ‚Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ эмулируСмого процСссора MIPS). Для ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ экспСримСнт ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ‹ спСцификация ΠΈ схСма ΠΏΠ»Π°Ρ‚Ρ‹, ΠΎΠ±Ρ€Π°Π· Linux-систСмы, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠ΄ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ инструмСнтария, эмуляторов MIPS R3000 ΠΈ Intel 4004, Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠ² ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΡˆΠΈΠ½Ρ‹ MCS-04.



Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru