Kompyuter arxitekturasi
Dastur ham, ma'lumot ham bitta xotirada — shu oddiy g'oya 80 yildan beri barcha kompyuterlarning asosi.
1945-yilda matematik Jon fon Neyman kompyuter qurilishining umumiy sxemasini taklif qildi. Bu sxema fon Neyman arxitekturasi deb ataladi va bugungi deyarli barcha kompyuterlar unga asoslanadi. Uning asosiy g'oyasi: dastur ham, ma'lumot ham bitta xotirada saqlanadi. Bungacha kompyuterni qayta dasturlash uchun simlarni qo'lda qayta ulash kerak edi (ENIAC'ni qayta dasturlash bir necha kun olardi). Endi esa yangi dasturni xotiraga yuklash kifoya.
Arxitekturaning beshta asosiy qismi bor: (1) arifmetik-mantiqiy qurilma (ALU) — hisob-kitob va taqqoslashni bajaradi; (2) boshqaruv qurilmasi (CU) — buyruqlarni o'qib, qolgan qismlarga nima qilish kerakligini aytadi; (3) xotira — dastur va ma'lumotlarni saqlaydi; (4) kirish qurilmalari; (5) chiqish qurilmalari. ALU, CU va registrlar birgalikda markaziy protsessor — CPU'ni tashkil qiladi.
5.1. Fon Neyman "tor bo'g'izi"
Bu arxitekturaning zaif tomoni ham bor. Protsessor juda tez ishlaydi, lekin xotiraga murojaat ancha sekin. Buyruq ham, ma'lumot ham bitta yo'ldan (shinadan) o'tgani uchun protsessor ko'pincha xotiradan ma'lumot kelishini kutib, "bekor" turadi. Bu muammo fon Neyman tor bo'g'izi (bottleneck) deyiladi. Zamonaviy kompyuterlar uni kesh xotira, konveyer, parallel ishlov berish kabi usullar bilan yumshatadi — ular haqida keyingi boblarda gaplashamiz. Ba'zi tizimlar (mikrokontrollerlar, DSP) esa dastur va ma'lumot uchun alohida xotira ishlatadigan Garvard arxitekturasidan foydalanadi.
5.2. Abstraksiya qatlamlari
Kompyuterni tushunishning eng yaxshi usuli — uni qatlamlar sifatida ko'rish. Har bir qatlam o'zidan pastdagi qatlamning murakkabligini yashiradi va yuqoridagi qatlamga oddiy "interfeys" taqdim etadi. Siz JavaScript'da kod yozganingizda tranzistorlar haqida o'ylamaysiz — va aynan shu tufayli murakkab dasturlar yaratish mumkin bo'ladi. Bu darslik pastdan yuqoriga qarab harakatlanadi: biz fizika va tranzistorlarni ko'rib chiqdik, endi protsessor ichiga kiramiz.