Про компьютеры… | Блог Бизикова Александра

Про компьютеры…

21 Янв

Введение в архитектуру компьютера

Цифровой компьютер – это машина, которая решает задачи, выполняет данные ей команды.

Последовательность команд описывающих решение каких-либо задач, называется – программой.

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

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

Эти простые команды в совокупности формируют язык, на котором люди могут общаться с компьютером – этот язык называется машинным языком.

Разработчик при создании нового компьютера решает, какие команды включит в его машинный язык. Обычно эти команды пытаются сделать как можно проще, что бы избежать сложности при проектировании компьютера и снизить затраты на необходимую электронику. Именно поэтому, большинство машинных языков примитивны и писать на них трудно и утомительно.

Этот факт, со временем привел к ряду возникновения уровней абстракций,  каждая из которых подстраивается над абстракцией более нижнего уровня.

Таким образом можно избежать сложностей с компьютером. Такой метод называется многоуровневой компьютерной организацией.

Существует два различных способа реализации этого подхода. Оба они заключаются в разработке новых наборов команд, более удобным для человека, чем команды машинного языка. Эти новые команды в совокупности тоже формируют язык, его мы будем называть Я1. А машинный будем называть Я0. Отличие, указанных нами способов заключаются  в особенностях перевода программ с языка Я1 на Я0.

1 способ (Компиляция или еще называют Трансляция ) подразумевает замену каждой команды из программы записанной на Я1 эквивалентным ей набором команд Я0. Таким образом компьютер будет выполнять программу записанную на Я0, вместо старой, написанной на Я1.

2 способ (Интерпретация) требует специальной программы написанной на языке Я0, принимающий в качестве входных данных, программы записанные на языке Я1. Каждая команда из программы записанная на языке Я1 обрабатывается поочередно, после чего сразу выполняется эквивалентный ей набор команд языка Я0.

Иногда вместо понятий интерпретация и трансляция, проще представлять себе существования гипотетического компьютера или виртуальной машин, для которым машинным языком будет являться язык Я1.

Если бы такой компьютер можно было бы сконструировать, на самом деле, то компьютер с языком Я0 стал бы больше не нужен! Однако, не смотря  на то, что мы не можем сконструировать такую виртуальную машину, мы можем писать для нее программы на Я1, которые затем будут выполняться на компе с машинным языком Я0 благодаря трансляции или интерпретации.

Трансляция и интерпретация возможно только в том случае, если Я0 и Я1 не сильно отличаються друг от друга. Это значит язык Я1 хоть и удобнее, чем Я0, но все же далек от идеала. Поэтому разрабатывают язык Я2, еще более ориентированный на  человека, потом Я3, Я4,… и т.д. Пока не будет достигнута поставленная цель.

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

Аппаратное и программное обеспечение

В самых первых компьютерах было только 2 уровня: 0 (← аппаратное обеспечение) и 2 (←программное обеспечение) уровни: цифровой логически и уровни архитектуры.

К аппаратному обеспечению относятся осязаемые объекты.

К программному – относятся всё остальное, что потрогать нельзя.

Со временем новыу уровни появлялись, исчезали и сливались друг с другом. И граница между обеспечениями стала не явной.

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

Существует несколько четких правил сводящихся к  тому, что какая-либо операция будет выполняться программным обеспечением и другая – аппаратным. Эти правила могут изменяться в зависимости от тенденции экономического и технологического развития.

Развитие компьютерной техники

Главной движущей силой компьютерного прогресса является способность производителей помещать все большее количество транзистров на одну микросхему. Чем больше транзистров, тем больше объем памяти, тем более быстро действующий процессор.

Один из Основателей компании Intel Гордом Мур во время подготовки доклада для одной из промышленных групп заметил, что каждое новое поколение микросхем появляется через три года после предыдущего. А посколько у каждого нового поколения компьютеров в 4 раза больше памяти,  чем у предыдущего, стало очевидно, что число транзистров на микросхеме выростает на пастоянную величину и этот рост моно попробывать предсказать на коды вперед.

Закон Мура гласит, что количество транзистров на одной микросхеме удваивается каждые 18 месяцев вдвое.

Современные многоуровневые машины

Современные компьютеры состоят из двух и более уровней.

5)ур.Прикладных программистов (трансляция компьютером или интерпретация)

4)Ассемблер (трансляция ассемблером)

3)ур.операционной системы (частичный интерпретатор ос)

2)ур. Архитектуры

1)микроархитектура (интерпретация микропрограммы)

0)цифровой логический уровень (выполняется аппаратным обеспечением)

Об уровнях теперь по подробнее:

0) Самый нижний уровень → цифровой логический уровень.Объекты на нем называются вентилями. Они состоят из аналоговых компонентов, например из транзистров. Но могут быть точно смоделированы, как цифровые устройства. У каждого вентиля есть один или несколько цифровых входов,по которым поступают сигналы представляющие собой нули и единицы.

Несколько вентилей формируют один бит памяти, который может содержать 0 или 1. Вентиль вычисляет простые функции цифровых сигналов(о или 1, конъюнкция, дизъюнкция и пр..)

Биты памяти объединенные в группы формируют регистр. Каждый регистр может содержать любое двоичное число до определенного предела.

1) Уровень микроархитектуры

На этом уровне находятся совокупности регистров, которые формируют локальную память и схему под названием АЛУ (арифметическо-логическое устройство).

АЛУ выполняет простые арифметические и логические операции. Регистры вместе с АЛУ формируют тракт (путь) данных, по которому поступают данные.

Тракт данных работает следующим образом: выбираются 1 или несколько регистров, АЛУ производит какую либо операцию, после чего результат это операции, вновь помещается в один из этих регистров..

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

2) Уровень архитектуры надора команд. Подробное описание этого уровня публикуется производителями  компьютера в руководстве по его машинному языку.

3)Операционные системы.

Является гибридным. Большинство команд в его языке есть так же и на уровне архитектуры набора команд, однако на уровне 3 есть некоторые дополнительные возможности:

новые команды, другая организация памяти, возможность выполнять две и более программ одновременно. и др.. Эти новые средства появившиеся на уровне 3 выполняются интерпретатором, который работает на уровне 2.

4) Между уровнем 4 и более низкими уровнями есть существенная разница: нижние уровни придуманы не для того, что бы с ними работал обычны программист, они изначально ориентированы на интерпретаторы и инсталяторы поддерживающие более высокие уровни. Эти интерпретаторы и инсталяторы разрабатываются системными программистами, а вот уровни, начиная начиная с четвертого и выше предназначены для прикладных программистов решающие определенные задачи. Уровни 2 и 3 обычно интерпретируются, а с уровня 4 и выше обычно транслируются.

Машинные языки уровне 1,2,3 цифровые, а 4 и выше – содержат слова и сокращения, понятные человеку. Уровень 4 представляет собой символическую форму одного и более низких уровней. Программы написанные на языке 4 уровня сначала транслируются на уровни 1,2 или 3, а затем интерпретируются виртуальной машиной. Программа выполняющая трансляцию с языка уровня 4 – называется ассемлер.

5)5 уровень состоит из разработанных для программистов – эти языки называются языками высокого уровня (делфи, паскаль, пхп)

Программы написанные на этих языках, обычно транслируются на уровень 3 или 4. Трансляторы, которые обрабатывают эти программы называются компиляторами. – уровень прикладных программистов. Таким образом компьютер, проектируется как иерархическая структура уровней которые надстраиваются друг над другом. Каждый уровень представляет собой определенную абстракцию различных объектов и операций. Рассматривая компьютер подобным образом мы можем принимать во внимание ненужные нам детали и таким образом сделать сложный предмет более простым для понимания. Набор типов данных, операций и характеристик каждого отдельно взятого уровня называется – архитектурным. Архитектура связана, только с программными аспектами.

Факторы развития технологий

Закон Мура связан с экономическим понятием эффективного цикла:

Достижение в компьютерных технологиях приводят к появлению продукции лучшего качества и более низким ценам.

Низкие цены ведут к появлению новых прикладных программ. Новые программы приводят

Комментировать через Вконтакте:
Комментировать через Facebook:

3 Responses to “Про компьютеры…”

  1. Климанов Никита 25.01.2011 at 1:00 пп #

    Очень познавательно! Даже я почерпнул что-то новое ;)

  2. Николай Гижицкий 05.02.2011 at 10:17 пп #

    Отличная статья!
    Спасибо!

  3. host1000 16.06.2011 at 10:58 дп #

    Трансляторы и компиляторы совсем разные вещи!

Написать комментарий

You must be logged in to post a comment.