Взято тут. |
Цей список складається із двох частин -- літератури для безпосереднього вивчення теми та окремий історичний підрозділ. Прочитайте хоча б вступ до нього! :-)
Почнемо із вікіпедії. Звичайно, тут легко втонути, список може стати величезним, тому, в основному, посилання "першого рівня" -- вглиб треба рухатися самостійно.
Загальні посилання:
- Мікросхема та Integrated circuit.
- Логічний вентиль та Logic gate -- зокрема, див. різні схеми позначень.
- Logic family, всілякі TTL, CMOS і т.д.
- Логічні елементи.
- Тригер, Демультиплексор, Дешифратор, Компаратор, Напівсуматор, Мультиплексор, Суматор, Шифратор, та англійські варіанти: Flip-flop.
- Арифметико-логічний пристрій, Arithmetic logic unit.
- 7400 series -- найбільш популярна серія мікросхем, включає реалізації всіх тих компонент, про які пише Токхейм та інші.
- List of 7400 series integrated circuits -- список членів цього сімейства мікросхем.
- 4000 series -- ще одна така серія. Зараз, на загал, менш популярна, ніж 74хх, але трапляється.
- List of 4000 series integrated circuits.
- NE555 -- таймер, генератор імпульсів і взагалі дуже корисна штука.
- Не на вікі, ще один список мікросхем серії 74xx, привабливий тим, що містить схеми розташування виводів більшості мікросхем серії -- сильно спрощує практичну роботу із ними.
Мікропроцесорний "напрямок":
- Microprocessor, Мікропроцесор
- Мікроконтролер, Microcontroller
- Instruction set architecture
- Modified Harvard architecture, Von Neumann architecture
- Instruction cycle
- Instruction pipelining
- x86, x86-64, x86 instruction listings, list of AMD, Intel, VIA x86 processors, List of x86 manufacturers
- ARM architecture, List of ARM microarchitectures, STM32
- MSP430, MSP432
- AVR, Atmel AVR instruction set
Сайт, присвячений електроніці: http://www.electronics-tutorials.ws/. Простий і доступний. В основному розповідається про аналогові пристрої. Дуже рекомендую хоча б проглянути! Отак сходу, крім основ -- резисторів/транзисторів: "Input/Output Device", "Operational Amplifiers". Але є і дещо безпосередньо для нас:
logisim -- навчальний симулятор цифрової логіки. Зручний та потужний -- на ньому можна реалізовувати як найпростіші комбінаторні схеми, так і цілі процесори. З 2014 року -- розробку зупинено.
logisim-evolution -- продовження проекту logisim іншими авторами, підтримує багато що нового.
Курс "CSC392 - Computer Organization & Systems". Дуже хороші ілюстрації, гарний опис. Рекомендую ознайомитися! :-)
- Digital Logic
- Karnaugh Maps
- Building Blocks for Digital Circuits
- Arithmetic Unit
- Central Processing Unit -- CPU
- Interpreting Machine Language Programs, Machine Language Programs
- Microprograms
- Memory
- IJVM Simulator -- реалізація мінімалістичної віртуальної машини Java, на якій базується Таненбаум у своїй "Архітектурі комп'ютерних систем".
Ще один тематичний ресурс: "Digital electronics" -- представлення даних, цифрова логіка, логічні сімейства, комбінаційна та секвенційна логіка. Загляньте і до доволі просунутого ALU.
В 74хх серії є славнозвісний 4-бітний ALU 74181, який відіграв важливу роль в розвитку комп'ютерів (зокрема, на ньому базувався і Xerox Alto і Datapoint 2200 Version II -- для якого створювався Intel 8008, з насліддям останнього маємо справу до сьогодні) і продовжує використовуватися любителями для створення своїх процесорів до цих пір. То дуже повчальне його дослідження:
- "Inside the 74181 ALU chip: die photos and reverse engineering"
- "Inside the vintage 74181 ALU chip: how it works and why it's so strange" -- внизу інтерактивний симулятор! Кому ота вся кухня важко дається, може виявитися дуже помічним.
"Electronics Tutorial for Robotics" -- від аналогових схем до таймерів (555), комбінаційної логіки, тригерів, лічильників. Нічого особливого, але по своєму симпатичний ресурс.
Шикарний симулятор електричних кіл, із багатьма цифровими та аналоговими прикладами. При чому, написаний він на JavaScirpt та доступний на github!
"Lessons in Electric Circuits" -- книга, від фізики електричних кіл (включаючи транзистори, підсилювачі, генератори) і до цифрових схем, по регістри, пам'ять, шини, АЦП (останні пункти -- оглядово).
Презентація по лічильниках
Від ALU плавно перейдемо до повноцінних процесорів. Почнемо із цього курсу:
- "Week 1 Tutorial - Data Representation " -- двійкова арифметика, цілі та дробові числа.
- "Week 2 Tutorial - Building an ALU " -- власне, воно, побудова арифметично-логічного модуля. Достатньо оглядово. Але містить реалізацію для симулятора Logisim!
- "An Example Hardwired CPU" -- простий процесор, команди якого "вшиті" в реалізацію. Теж із симуляцією.
- "An Example Microcoded CPU". В принципі, тут теж можна спробувати, сайт, на який посилається, недоступний, але див. тут: MythSim.
Я, на жаль, зовсім не дружу із відеоуроками -- ніяк не можу зрозуміти, як можна так вивчати такі абстрактні матерії... Але, так як багато кому подобається, то ще ось таке посилання: копія курсу "Computer Architecture" із Coursera.
Шикарнющий саморобний мегапроцесор:
Книга " Banner From NAND to Tetris Building a Modern Computer From First Principles" та сайт із лекціями від авторів: "Study Plan", див. також "Software".
З її приводу згадується цитата із "Архітектури" Таненбаума: "Since the actual hardware used consists only of the basic components described in Chap. 3, in theory, after fully understanding this chapter, the reader should be able to go out and buy a large bag full of transistors and build this subset of the JVM machine. Students who successfully accomplish this task will be given extra credit (and a complete psychiatric examination)." Слабак.
Список саморобних комп'ютерів: "Homepage for the home-built computers web-ring". Зокрема:
- "Magic-1" -- комп'ютер, побудований іх мікросхем 74-ї серії, який виконує Minix та сам хостить свій вебсайт: http://www.magic-1.org/!
- "MyCPU" -- ще один цілком потужний процесор із 74хх.
- "Mark 1 FORTH Computer", "Mark 2 FORTH Computer"
- "Simple 4-Bit CPU" -- зовсім простенький 4-бітний процесор.
- "Harry Porter's Relay Computer" -- комп'ютер із реле. (Дивлячись на ім'я -- палиться...)
- "Zusie - My Relay Computer" -- ще один!
- "Technical Articles Folder" -- від суматорів і ALU до мікропрограм і реалізації 6502 (того самого, на базі якого Apple II).
- "128elite" -- ще один простий 4-бітний комп'ютер із логічних елементів. І його ж 8-бітний "Adept".
- Та багато інших.
Відступаючи трішки в сторону, серія статей про трійкові логіку і трійкові схеми.
Історія
Є така проблема. Історія якогось предмету цікава, по великому рахунку, лише тим, хто в ньому вже орієнтується. Але викладання часто починають власне із історії. Викладачу чи автору книги -- фахівцю у предметі, це видається природним. А ось новачку... Тому цей список -- в кінці. :-)
Із постійним потоком новинок в ІТ, виникає ілюзія, що немає сенсу заглядати в минуле, коли тут стільки руху. Це груба помилка. З одного боку, мінус зовнішня комерційна різноманітність, концепції та ідеї сучасних пристроїв достатньо давні. Декілька прикладів:
- Xerox Alto -- GUI, мишка, WYSIWYG, Ethernet, лазерний принтер. 1973 рік. І Білл Гейтс і Стів Джобс про ці машини дуже добре знали.
- Віртуальна пам'ять -- початок 1960-х.
- ARPANET, перша реалізація TCP/IP -- початок 1970-х ("First ARPANET IMP log: the first message ever sent via the ARPANET, 10:30 pm, 29 October 1969.")
- Зараз в настільних комп'ютерах та високопродуктивних системах домінують процесори сімейства x86. Його родоначальник, i8086, із яким вони до цих пір сумісні, вийшов в 1979 році. Та був, на рівні асемблера, сумісним із i8080, 1974. Та був ідейним, хоч і не сумісним, розвитком i8008, 1972.
З іншого, розвиток технології йде по спіралі. Щоб не повторюватися, див. розділ "Відступ про спіральний розвиток" із моєї рецензії на "Операційні системи" Таненбаума.
Нарешті, часто старіші пристрої простіші для розуміння. Правда, часто -- не значить "завжди". Іноді, буває, такого накрутять...
Нарешті, часто старіші пристрої простіші для розуміння. Правда, часто -- не значить "завжди". Іноді, буває, такого накрутять...
Для студентів, яким було трохи менше двох десятиліть, придумав ще такий аргумент. Хто залишиться в індустрії і виживе, раніше 65 років на пенсію не піде. Дуже ймовірно -- пізніш. Це більше ніж 45 років активного життя. А тепер від 2017 віднімемо 45. Отримаємо 1972. i86 чи Інтернетом ще й не пахне. ARPANET вже є, хоча TCP/IP ще, певне, немає. Unix вже з'явився, але ніхто ще не підозрює, що із того буде. DOS/Windows нікому ще й приснитися не можуть (ну, може крім юзерів Xerox Alto :-). Розробка С ще тільки почалася. Перший мікропроцесор (i4004) рік, як з'явився.
І такий проміжок чекає нове поповнення Ай-Тішників. :-) Звичайно, індустрія вже не така юна та мінлива, як в 70-х. Але зміни за півсотні років будуть фантастичні. Ми їх поки собі не можемо уявити. Проте, усвідомлення, як відбувався розвиток індустрії, може трохи допомогти відчувати, що ж буде далі.
Дуже хороша ілюстрація цього, стаття: "Каково это — быть разработчиком, когда тебе сорок". Хотів навести цитати, але то третина статті набереться... Тому обмежуся однією: "Не реагируйте на хайп", а далі -- читайте.
І просто приклад, як деякі, більш ніж дивні речі, з'явилися в стандарті на С/С++: "How to check if a pointer is in a range of memory". Здавалося б, хто зараз про сегменти і ото все пам'ятає...
Дуже хороша ілюстрація цього, стаття: "Каково это — быть разработчиком, когда тебе сорок". Хотів навести цитати, але то третина статті набереться... Тому обмежуся однією: "Не реагируйте на хайп", а далі -- читайте.
І просто приклад, як деякі, більш ніж дивні речі, з'явилися в стандарті на С/С++: "How to check if a pointer is in a range of memory". Здавалося б, хто зараз про сегменти і ото все пам'ятає...
Список нижче не претендує на хоч якусь повноту -- це поки непідйомна для мене задача. Тому лише окремі, улюблені, свого роду, теми. Зокрема, каюся, нижче дуже багато посилань із блогу Ken Shirriff. Але воно того вартує!
Загальна хронологія:- Timeline of Computer History із сайту комп'ютерної історії. (На якому багато чого цікавого -- от, тексти DOS 1.1 та 2.0, ранніх версій фотошопу та MS Word і т.д.)
- History of computing hardware -- із вікіпедії.
Інтелівські продукти
Перша мікросхема від Intel, 3101 RAM, 64 біти, квітень 1969. Всього $99.50 тодішніх, півтора долари за біт. :-) "Inside Intel's first product: the 3101 RAM chip held just 64 bits". Наступний рік: "Inside the Intel 1405: die photos of a shift register memory from 1970".
Певне, першим повноцінним процесором був Intel 4004. 1971 рік.
У нього існує навіть власний музей: "http://www.4004.com/". Зокрема, там є повні схеми та симулятор MCS-4 -- чіпсету, до якого належав 4004: "Complete Artwork, Schematics, and Simulator for Intel MCS-4 (4004 family) microprocessor chip-set: "Together again after 38 years!"".
Наступним процесором від Intel був 8008, який призначався для "програмованого терміналу" Datapoint 2200. Із різних причин, інтелівський чіп не було використано розробником (CTC). Цікаво, що такий же мікропроцесор було розроблено і Texas Instruments, але вони особливо на ньому не зупинялися.
Зображення із статті нижче. |
Порівняння вигляду перших процесорів від Інтел та аналогу 8008 від Texas Instruments. |
- " Die photos and analysis of the revolutionary 8008 microprocessor, 45 years old". Дві цитати звідти. Про зворотну сумісність:
"Nonetheless, some characteristics of the Datapoint 2200 still exist in today's x86 processors. For instance, the Datapoint 2200 had a serial processor, processing bytes one bit at a time. Since the lowest bit needs to be processed first, the Datapoint 2200 was little-endian. For compatibility, the 8008 was little-endian, and this is still the case in Intel's processors. Another feature of the Datapoint 2200 was the parity flag, since parity calculation was important for a terminal's communication. The parity flag has continued to the x86 architecture."
І про історію, яка ходить по колу:
"Now almost all chips are CMOS. [Interestingly, in 2007 Intel started using metal gates again in order to scale transistors further (details). In a way, semiconductor technology has gone full circle, back to metal gates, although now unusual metals such as hafnium are used.]".
(Цікаво, може автор колись і про 8086/8088 так напише? :-) - "The Surprising Story of the First Microprocessors" -- зокрема, і про аналог 8008 від TI.
"In my view, the key features of a microprocessor are that it provides a CPU on a single chip (including ALU, control functions, and registers such as a program counter) and that it is programmable. But a microprocessor isn’t a complete computer: Additional chips are typically needed for memory, I/O, and other support functions.
Using such a definition, most people consider the Intel 4004 to be the first microprocessor because it contains all the components of the central processing unit on a single chip. Both Boone and Federico Faggin (of Intel’s 4004 team) agree that the 4004 beat the earliest TMX 1795 prototypes by a month or two. The latter would then represent the first 8-bit microprocessor, and the Intel 8008 the first commercially successful 8-bit microprocessor." - Ще про нього ж: " The Texas Instruments TMX 1795: the (almost) first, forgotten microprocessor"
- "Reverse-engineering the surprisingly advanced ALU of the 8008 microprocessor".
- "Analyzing the vintage 8008 processor from die photos: its unusual counters" -- як тільки викручуватися не доводилося...
Крім безпосередніх нащадків, 8080 і 8086, у цієї гілки процесорів були відгалуження.
Перша -- Z80, 1976-го року, у свій час -- дуже популярний. (Його варіації хоч і програли x86 "великий" ринок, до цих пір продаються як мікроконтролери!)
- "Reverse-engineering the Z-80: the silicon for two interesting gates explained"
- "The Z-80 has a 4-bit ALU. Here's how it works."
- "The Z-80's 16-bit increment/decrement circuit reverse engineered"
- "Why the Z-80's data pins are scrambled"
- "Down to the silicon: how the Z80's registers are implemented"
- "Zilog Oral History Panel on the Founding of the Company and the Development of the Z80 Microprocessor"
Другий -- 8085 від Intel. Більше використовувався як мікроконтролер, теж дуже популярний. Навіть в космос літав (Sojourner та купа інших місій), кажуть, в Росії все ще випускають клон.
- "Inside the ALU of the 8085 microprocessor"
- "Notes on the PLA on the 8085 chip"
- "Silicon reverse engineering: The 8085's undocumented flags" -- і таке буває...
- "The 8085's register file reverse engineered"
- "Reverse-engineering the flag circuits in the 8085 processor"
- "Reverse-engineering the 8085's ALU and its hidden registers"
Паралельно існували й інші популярні архітектури. Про всі говорити неможливо, але три, завдяки Ken Shirriff, згадаю.
Перша -- MOS Technology 6502, 1975. 8-бітний процесор, що був ядром Atari 2600, 8-бітних Atari, Apple II, Nintendo Entertainment System, Commodore 64. Все ще має велику кількість відданих фанатів.
- "Visual Transistor-level Simulation of the 6502 CPU" -- просто безподобна іграшка! (Також у них є симулятор ARM1).
- "http://www.6502.org/" -- "6502.org is a resource for people interested in building hardware or writing software for the 6502 microprocessor and its relatives".
- "How MOS 6502 Illegal Opcodes really work" -- в свій час мав велике прозріння, що поведінка невизначених команд на ранніх процесорах (аж по ЕГГОГОЛогію радянських програмованих калькуляторів) -- то всього лиш не особливо спланована поведінка логічних кіл процесора у ситуаціях, які виникати не мали б.
- "The 6502 CPU's overflow flag explained at the silicon level"
- "The 6502 overflow flag explained mathematically"
- "The 6502 CPU's overflow flag explained at the silicon level "
Фото із статті нижче. |
- Візуальний симулятор ARM1.
- "Reverse engineering the ARM1, ancestor of the iPhone's processor"
- "Counting bits in hardware: reverse engineering the silicon in the ARM1 processor"
- "More ARM1 processor reverse engineering: the priority encoder"
- "Conditional instructions in the ARM1 processor, reverse engineered"
- "Reverse engineering ARM1 instruction sequencing, compared with the Z-80 and 6502"
- "Reverse engineering the ARM1 processor's microinstructions"
Остання система -- Xerox Alto. Хвалив вже її вище. :=)
Взято на вікі. |
- "Xerox Alto Source Code" із Computer History Museum.
- Документація.
- Симулятори: "Altogether: a Xerox Alto Simulator", "ContrAlto: A Xerox Alto Emulator", "ContrAltoJS Xerox Alto Emulator"
- "Y Combinator's Xerox Alto: restoring the legendary 1970s GUI computer" -- огляд від Ken Shirriff.
- Restoring Y Combinator's Xerox Alto, day 1: Power supplies and disk interface
- "Hello world" in the BCPL language on the Xerox Alto simulator
- Restoring Y Combinator's Xerox Alto, day 2: Repairing the display
- Restoring Y Combinator's Xerox Alto, day 3: Inside the disk drive
- Restoring Y Combinator's Xerox Alto, day 4: What's running on the system
- Restoring YCombinator's Xerox Alto day 5: Microcode tracing with a logic analyzer
- Restoring YCombinator's Xerox Alto day 6: Fixed a chip, data read from disk
- Restoring YC's Xerox Alto: how our boot disk was trashed with random data
- Restoring a vintage Xerox Alto day 8: it boots!
- Restoring YC's Xerox Alto day 9: tracing a crash through software and hardware
- Restoring YC's Xerox Alto day 10: New boards, running programs, mouse problems
- Improvements to the Xerox Alto Mandelbrot drop runtime from 1 hour to 9 minutes -- мені чогось зразу оптимізації під CUDA згадалися...
- Bitcoin mining on a vintage Xerox Alto: very slow at 1.5 hashes/second
- Vintage Calculators Web Museum
- "Simulating a TI calculator with crazy 11-bit opcodes"
- "Reverse-engineering and simulating Sinclair's amazing 1974 calculator with half the ROM of the HP-35"
Більш давні часи
Сайт та віртуальний музей IBM 1401: "The IBM 1401 Demo Lab and Restoration Project"
Ken Shirriff, бравши участь у відновленні такої машини, трохи писав про них:
- Bitcoin mining on a 55 year old IBM 1401 mainframe: 80 seconds per hash
- 12-minute Mandelbrot: fractals on a 50 year old IBM 1401 mainframe
- A database of SMS cards: The technology inside IBM's 1960s mainframes
- Examining the core memory module inside a vintage IBM 1401 mainframe
- Fixing the core memory in a vintage IBM 1401 mainframe
- Qui-binary arithmetic: how a 1960s IBM mainframe does math
Але IBM почалася задовго до цифрових комп'ютерів. Трішки про ту доісторичну епоху: " 1950's tax preparation: plugboard programming with an IBM 403 Accounting Machine"
Ще варто детальніше поговорити про:
- ENIAC. "ENIAC Operating Manual, Jun-1946" -- весело було...
- CDC 6600. Наприклад: "Case Study— CDC 6600 Scoreboard".
- IBM/360.
- Та десятки інших...
"555 timer teardown: inside the world's most popular IC" (Сторінка на вікі)
На разі -- все,
Дякую за увагу!
Немає коментарів:
Дописати коментар