2010-01-12 4 views
1

В моем стремлении получить некоторые основы до того, как я начну заниматься программированием, я ищу необходимые знания о том, как компьютер работает на основном уровне.Знание цифровых цепей

У меня есть теория, что на самом деле понимание того, что, например, stackoverflow, не говоря уже о стеке, вместо моих спорадических знаний о компьютерных системах, поможет мне более длительный срок.

Есть ли какие-либо книги или сайты, которые расскажут вам о том, как процессоры структурированы и дают целостный обзор и что-то связано с полезной информацией о цифровой логике?

Я понимаю смысл?

+0

* «Я имею смысл?» * - Да и нет. Да, я понимаю, что вы говорите. Но нет, я не думаю, что это поможет вам понять программирование ... –

ответ

1

Да, вы должны прочитать некоторые темы

Джон Л. Хеннесси & Дэвид А. Паттерсона, «Компьютерная архитектура: количественный подход»

Он имеет историю и теорию микропроцессоров (начиная с RISC арки - MIPS), конвейерная обработка, память, хранение и т. д.

Дэвид Паттерсон - профессор компьютерных наук в отделе EECS - У. Беркли. http://www.eecs.berkeley.edu/~pattrsn/

Надеется, что это помогает, вот ссылке

1

Таненбаум-х Structured Computer Organization это хорошая книга о том, как компьютерах работе. Вам может быть трудно пройти через книгу, но это в основном связано с предметом, а не с автором.

Однако я не уверен, что рекомендую воспользоваться этим подходом. Понимание того, как работает компьютер, безусловно, может быть полезным, но если у вас действительно нет каких-либо знаний в области программирования, вы не сможете эффективно использовать свои знания - и вам, вероятно, пока не нужны эти знания. Вам будет лучше изучать такие темы, как объектно-ориентированное программирование и структуры данных, чтобы узнать о разработке программы, потому что, если вы не смотрите на встроенное программирование в очень ограниченных системах, вы найдете эти навыки гораздо полезнее, чем знание внутренняя работа компьютера.

+0

Я могу сделать базовое программирование PHP, AS3 даже работал OOP с Lingo в дни директора. Поэтому я знаю основы циклов, если/then-заявления и т. Д. Но я всегда чувствую, что мне что-то не хватает – ThomPete

1

На мой взгляд, 20 лет назад было возможно понять весь спектр от BASIC на всем протяжении операционной системы, аппаратного обеспечения, вплоть до транзистора или даже квантового уровня. Я не знаю, что один человек может понять весь спектр с сегодняшней технологией. (Несколько лет назад все обслуживали свою машину. Сегодня это слишком сложно.)

Некоторые из "слоев", которые могут быть заинтересованы в:

1

Это очень просто на самом деле - инструкции CPU загружает и выполняет их, большинство из этих инструкций вращается вокруг значений загрузки в регистры или ячейку памяти, а затем манипулирование этих значений. Некоторые диапазоны памяти зарезервированы для связи с периферийными устройствами, которые подключены к аппарату, например экраном или жестким диском.

Назад в дни Apple] [и Commodore 64 вы можете поместить значение непосредственно в ячейку памяти, и это будет напрямую изменять пиксель на экране - эти дни давно прошли, он отвлечен от вас (программист) несколькими слоями кода, такими как драйверы и операционная система.

Вы можете узнать о таких вещах или языке ассемблера (который я являюсь огромным поклонником), или вентилях AND/NAND на аппаратном уровне, но зная, что этот материал не поможет вам кодировать веб-приложение в ASP.NET MVC, или написать быстрый и грязный сценарий Python или Powershell.

В сети есть много ресурсов, которые позволят вам понять, как работает процессор и остальная часть оборудования, но если вы хотите спуститься и грязно, я честно думаю, что вы должны купить один из этих старые машины с eBay или где-нибудь, и узнайте его особый вкус ассемблера (я понимаю, что есть также много программируемых контроллеров PIC, которые также могут быть полезны для изучения). Сбор старой машины позволит устранить абстракции программного обеспечения и упростить процесс обучения. Вы учитесь лучше, когда получаете мгновенное удовлетворение, например, чтобы спрайты перемещались по экрану или генерировали звуки, напрямую переключая динамик (или используя контроллер PIC для управления маленьким роботом). С теми старыми машинами, схемами для Apple] [материнская плата подходит к грубому листу формата A2, который был сложен в задней части одного из руководств Apple - мне было бы неловко представить, как они выглядят в наши дни.

0

В то время как я согласен с предыдущими ответами, поскольку это невероятно сложно понять весь процесс, мы можем по крайней мере разбить его на категории, от самых низких (ближе всего к электронам) до самого высокого (ближе всего к тому, что вы на самом деле видите) ,

Самая низкая Твердотельные устройства физики (как транзисторы работают физически) теории цепей (как транзисторы объединяются для создания логических вентилей) Digital Logic (Как логические элементы ставятся вместе, чтобы создать цифровые функции или цифровые структуры, т.е. мультиплексоры, полный сумматоры и т. д.) Организация аппаратного обеспечения (как путь передачи данных в CPU, компоненты машины Von Neuman -> память, процессор, Арифметический логический блок, выборка/декодирование/выполнение) Микроинструкции (программирование уровня бит) Сборка (программирование) со словами, но прямо указывающими регистры и навсегда заставляя программировать даже простые вещи) Интерпретированные/скомпилированные языки (языки программирования, которые скомпилированы или интерпретируются для сборки, операционная система может быть в одном из них) Операционная система (планирование процессов, аппаратное обеспечение интерфейсы, тезисы нижних уровней) Языки с более высоким уровнем (эти два раза появляются, это зависит от языка. Java выполняется на очень высоком уровне, но C идет прямо на сборку, а компилятор C, вероятно, написан на C) Пользовательские интерфейсы/Applica/Gui (Последний шаг, заставляя его выглядеть красиво)

Вы можете найти много о каждом из них. Я всего лишь эксперт в области цифровой логики вещей. Если вы хотите тщательно учебник по цифровой логики с нуля, перейдите к электротехнике меню моего сайта:

affablyevil.wordpress.com

Я преподаю класс, и добавление онлайн уроки, как я идти.

Смежные вопросы