реклама на сайте
подробности

 
 
> Как железо "понимает" программу?, очень детский вопрос
Vagant
сообщение Sep 6 2009, 14:34
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 25-09-07
Пользователь №: 30 820



Здравствуйте,

Поскольку я только учусь проектировать встраиваемые системы то возникают всякие наивные вопросы. Один из них - как железо (hardware) понимает написанную на человеческом языке программу (software) во встраиваемой системе (embedded system)?

В книжках пишут что команда, например

add R2 R1

преобразуется в последовательность кодов которые микропроцессор исполняет. Но мне тогда непонятно откуда берутся эти коды и как микропроцессор их понимает?
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 32)
toweroff
сообщение Sep 6 2009, 15:17
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



копните сначала в сторону "цифровой автомат", птицу (ПТЦА - прикладная теория цифровых автоматов).
Также схемотехника - стандартная логика, регистры, мультиплексоры, счетчики, АЛУ (арифметико-логическре устройство) и т.д.

Тогда уже будет более-менее понятно, откуда берутся машинные циклы и сама методика выборки, дешифрации и обработки команды...
Причина редактирования: Ненужное цитирование.
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Sep 6 2009, 15:19
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



коды придумывает изготовитель микропроцессоров. От фонаря.
Последовательность кодов какими-либо средствами записывается в память программ процессора. После специального сигнала СБРОС проц начинает своими способами вытаскивать коды команд последовательно, одну за другой. начинает он это делать обычно с самой первой по порядку команды. Но это необязательно. Адрес самой первой команды после СБРОСА производитель также сообщает.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
Vagant
сообщение Sep 6 2009, 15:29
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 25-09-07
Пользователь №: 30 820



Цитата(toweroff @ Sep 6 2009, 18:17) *
копните сначала в сторону "цифровой автомат", птицу (ПТЦА - прикладная теория цифровых автоматов).
Также схемотехника - стандартная логика, регистры, мультиплексоры, счетчики, АЛУ (арифметико-логическре устройство) и т.д.

Тогда уже будет более-менее понятно, откуда берутся машинные циклы и сама методика выборки, дешифрации и обработки команды...


А существует ли простой и ясный ответ на мой вроде бы простой вопрос? Имеется ввиду, ответ без привлечения всей теории цифровых систем.

Цитата(DpInRock @ Sep 6 2009, 18:19) *
коды придумывает изготовитель микропроцессоров. От фонаря.


Хотя вид кода и выглядит произвольным для человека но ведь процессор знает какой код что означает. Вот откуда он это знает?

Сообщение отредактировал Vagant - Sep 6 2009, 15:21
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Sep 6 2009, 15:44
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Вы чего это? Процессор - просто проигрыватель кодов. Откуда DVD player знает как надо киану ривза показывать?

Сообщение отредактировал DpInRock - Sep 6 2009, 15:45


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
Vagant
сообщение Sep 6 2009, 15:49
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 25-09-07
Пользователь №: 30 820



Цитата(DpInRock @ Sep 6 2009, 18:44) *
Вы чего это? Процессор - просто проигрыватель кодов. Откуда DVD player знает как надо киану ривза показывать?


Имелись ввиду коды команд процессора - их то он знает. А данные, конечно, разные могут быть.

Сообщение отредактировал Vagant - Sep 6 2009, 15:52
Go to the top of the page
 
+Quote Post
domowoj
сообщение Sep 6 2009, 15:56
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Цитата(Vagant @ Sep 6 2009, 21:34) *
add R2 R1

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

Нет процесср не поймет "add R2 R1" , он понимает только код (8 или16 разрядов в засимости от проц.)
Существуют программы именуемые ассемблерами или компиляторами, которые из "add R2 R1" делают код понятный процессору , чтобы выполнить именно эту операцию.
Для лучшего понимания почитайте например Хоровиц "энд" Хилл или Титце "энд"Шенк,
они гуляют в нете в эл. виде


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
Vagant
сообщение Sep 6 2009, 16:09
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 25-09-07
Пользователь №: 30 820



Цитата(domowoj @ Sep 6 2009, 18:56) *
Нет процесср не поймет "add R2 R1" , он понимает только код (8 или16 разрядов в засимости от проц.)


Так вот я и стараюсь разобраться как процессор понимает коды своих команд. (После компиляции файла на языке Си или Ассемблер создаётся файл с машинными кодами, это понятно.)

А вот почему, например, одно 8-ми (или 16-ричное) число является кодом процессора а другое нет?

P.S. Спасибо, Хоровиц у меня есть - буду читать.

Сообщение отредактировал Vagant - Sep 6 2009, 16:18
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Sep 6 2009, 16:23
Сообщение #9


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Производитель процессоров сказал - код такой-то - такая команда, сякой-то - сякая. А код эдакий - вобще не команда, а отстой. Запрещаю!!!
А производители компиляторов уже подстраиваются под конкретного производителя процессоров.

Ну, и программу процессор никак не понимает. Он видит из нее исключительно кусочки по одной команде. И ему глубоко наплевать на остальное.
И если вместо настоящиъх кодов ему подсунуть фигню, он все равно будет чего-то делать. В смысле, фигню. Процессор никогда не стоит без дела. Всегда извлекает команды и выполняет. (Есть особые случаи, когда он ничего не делает, но это - особые случаи).

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

Сообщение отредактировал DpInRock - Sep 6 2009, 16:35


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
Microwatt
сообщение Sep 6 2009, 16:34
Сообщение #10


Гуру
******

Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802



Цитата(Vagant @ Sep 6 2009, 19:09) *
А вот почему, например, одно 8-ми (или 16-ричное) число является кодом процессора а другое нет?

P.S. Спасибо, Хоровиц у меня есть - буду читать.

Поищите древнюю книгу Б.Соучека. Микропроцессор по молекулам разжеван.
Основу процессора составляет жесткая комбинационная схема с регистром команд на входе. Команда тактовым импульсом защелкивается в регистре и схема выдает все необходимые сигналы на коммутаторы, подключая к арифметическому устройству нужные регистры. В следующем такте результат с выхода АЛУ защелкивается в выходном регистре (аккумуляторе), а во входном - следующая команда.
Поле команды разбивается изготовителем на определенные зоны для описания адресов операндов и, собственно, самой процедуры, которую нужно выполнить. В принципе, формат команды может быть задан произвольным, но под него нужна более сложная в проектировании комбинационная схема.
Как отличаются числа от команд? Обычно, первое слово - команда. В нем, при необходимости и указывают будут ли последующие слова числами или командами и сколько их будет, если команда сложная, из нескольких слов. Все это "расшивается" (дешифруется) все в той же комбинационной схеме при расшифровке поля команды.
Структура команд, полей адресов и данных у разных процессоров крайне разнообразна. Тут можно только самые общие принципы очертить.
Go to the top of the page
 
+Quote Post
Vagant
сообщение Sep 6 2009, 16:34
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 25-09-07
Пользователь №: 30 820



Цитата(DpInRock @ Sep 6 2009, 19:23) *
Производитель процессоров сказал - код такой-то - такая команда, сякой-то - сякая. А код эдакий - вобще не команда, а отстой. Запрещаю!!!
А производители компиляторов уже подстраиваются под конкретного производителя процессоров.


Понятно. А выполнение кода команды происходит в процессоре на логическом и/или физическом уровне?
Go to the top of the page
 
+Quote Post
vvvvv
сообщение Sep 6 2009, 17:16
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-06-04
Пользователь №: 85



Цитата(Vagant @ Sep 6 2009, 20:34) *
Понятно. А выполнение кода команды происходит в процессоре на логическом и/или физическом уровне?

На физическом уровне все устройства в процессоре работают с двумя уровнями напряжения 0 и 3V. Если процессору подается на 8 разрядную шину 8 разных уровней напряжения,он смотрит какие из них 0V, какие 3V. И в ответ выполняет работу в соответствии с полученной информацией. И точно также выставляет на своих выводах уровни 0V и 3V в зависимости от того, какой результат его вычислений. 0V считается логическим нулем, 3V считается логической единицей.Но процессор этого не знает. Нули и единицы это для людей. Процессор работает только с напряжениями.
Go to the top of the page
 
+Quote Post
Прохожий
сообщение Sep 6 2009, 18:01
Сообщение #13


Cундук
*****

Группа: Участник
Сообщений: 1 478
Регистрация: 13-11-06
Из: Ростов-на-Дону
Пользователь №: 22 269



Цитата(Vagant @ Sep 6 2009, 20:34) *
Понятно. А выполнение кода команды происходит в процессоре на логическом и/или физическом уровне?

Простите, а Вы цифровую схемотехнику где-нибудь проходили?
Чтобы разобраться с вопросом, надо знать, что такое сумматор, арифметико-логическое устройство, устройство управления, микропрограмма.
Дело в том, что любой алгоритм, изложенный формально, неважно на чем, можно представить двояко:
1. В виде параллельно-последовательной схемы.
2. В виде последовательности команд (операторов).
Что в настоящее время и происходит.
Люди, умеющие писать программы на С, выбирают микроконтроллеры, а те, кто изучил тот же С, но несколько модифицированный,
занимаются FPGA, CPLD и прочей твердотельной гадостью.
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Sep 6 2009, 18:37
Сообщение #14


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



У процессора нет никаких уровней. Уровни есть у ВАС. Т.е. вы заставляете процессор делать нечто, что выражается в каком-либо конкретном выражении. К примеру. Вы заставляете его зажечь лампочку. Для этого вы даете ему съесть набор команд, которые приводят к данному событию.

Если лмпочка подключена к ПРОГРАММНО УПРАВЛЯЕМОМУ ВЫВОДУ микропроцессора, то существует всегда команда, с помощью которой вы можете выдать на этот вывод ЛОГИЧЕСКИЙ НОЛЬ или 1. Этот логический уровень воспринимается лампочкой как соответсвующее напряжение на своих выводах (0 или 5 вольт, например). И получив 5 вольт - она зажигается. Получив 0 вольт - гаснет.

В данном случае абстрагирование от уровней напряжения получило название логического уровня. Но ничем от этого уровня не отличающегося. Просто удобнее разговаривать людям. А кроме того, удобно применять математику к логическму уровню. Писанины меньше.

---
По опыту. Всегда помните, что любой процессор начинает выборку команд с фиксированного вполне определенного адреса (чаще всего с 0).
И именно с этого адреса должна располагаться программа. ВСЕГДА!!!!! Без всяких исключений.

Сообщение отредактировал DpInRock - Sep 6 2009, 18:39


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
head_sk
сообщение Sep 6 2009, 18:44
Сообщение #15


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 3-07-09
Пользователь №: 50 897



Цитата(DpInRock @ Sep 6 2009, 18:19) *
коды придумывает изготовитель микропроцессоров. От фонаря.

Я бы не сказал что от фонаря. Когда я писал свой синтезируемый процессор, я выбирал далеко не от фонаря.
Go to the top of the page
 
+Quote Post
Vagant
сообщение Sep 6 2009, 18:49
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 25-09-07
Пользователь №: 30 820



Тайм-аут. Ищу Соучека smile.gif

Сообщение отредактировал Vagant - Sep 6 2009, 18:56
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Sep 6 2009, 18:49
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Microwatt @ Sep 6 2009, 19:34) *
Поищите древнюю книгу Б.Соучека. Микропроцессор по молекулам разжеван.
Основу процессора составляет жесткая комбинационная схема с регистром команд на входе.

А вот ни фига и Ваш Соучек врет.
Меня учили так, что альтернативой жесткой комбинационной схеме является микропрограммный автомат.
Ну "микро" должно же что-то значить?! smile.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Designer56
сообщение Sep 6 2009, 18:49
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 2 932
Регистрация: 13-10-06
Из: Уфа
Пользователь №: 21 290



Цитата(head_sk @ Sep 7 2009, 00:44) *
Я бы не сказал что от фонаря. Когда я писал свой синтезируемый процессор, я выбирал далеко не от фонаря.

Я тоже так думаю... rolleyes.gif
По- моему, ближайшая простейшая аналогия- шарманка, к тому же такая, которая может сама себе поменять диск или барабан с дырочками.


--------------------
"...Дьяволу ведомо многое не потому, что он- Дьявол, а потому, что он стар..."
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Sep 6 2009, 19:03
Сообщение #19


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Цитата
Меня учили так, что альтернативой жесткой комбинационной схеме является микропрограммный автомат.

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


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
Student Pupkin
сообщение Sep 6 2009, 19:03
Сообщение #20


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 23-05-08
Пользователь №: 37 760



Цитата(toweroff @ Sep 6 2009, 19:17) *
копните сначала в сторону "цифровой автомат", птицу (ПТЦА - прикладная теория цифровых автоматов).
Также схемотехника - стандартная логика, регистры, мультиплексоры, счетчики, АЛУ (арифметико-логическре устройство) и т.д.
Тогда уже будет более-менее понятно, откуда берутся машинные циклы и сама методика выборки, дешифрации и обработки команды...

Как-то раз болтал с одним человеком. Он тогда учился в строительной академии. Как-то неожиданно разговор перешел в область электроники. Тут он и говорит:"Я знаю полностью, как устроен микропроцессор" (речь завели об обычной ПЭВМ, соответственно это он о пентиуме вел речь). Я решил пошутить, и сказал:"Сможешь мне нарисовать его схему на транзисторах?". Он посмотрел на меня удивленно и ответил: "Там нет транзисторов...". laughing.gif
Может человеку лучше начать с этого? Ну или начать с книги по цифровой электронике, где в начале объясняется работа транзисторов в ключевом режиме? Тогда по крайней мере у него прояснится вопрос с "логическими уровнями" и "электрическими уровнями"... И потом можно будет перейти к стандартной логике, регистрам и т.д. И в завершении копнуть в сторону цифровых автоматов (хотя необходимый объем обычно в учебнике по цифровой электронике имеется и специальную литературу читать не придется). smile.gif
Go to the top of the page
 
+Quote Post
Vagant
сообщение Sep 6 2009, 19:15
Сообщение #21


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 25-09-07
Пользователь №: 30 820



Цитата(Dog Pawlowa @ Sep 6 2009, 21:49) *
А вот ни фига и Ваш Соучек врет.
Меня учили так, что альтернативой жесткой комбинационной схеме является микропрограммный автомат.
Ну "микро" должно же что-то значить?! smile.gif


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

Сообщение отредактировал Vagant - Sep 6 2009, 19:38
Go to the top of the page
 
+Quote Post
toweroff
сообщение Sep 6 2009, 22:26
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(Student Pupkin @ Sep 6 2009, 23:03) *
Как-то раз болтал с одним человеком. Он тогда учился в строительной академии. Как-то неожиданно разговор перешел в область электроники. Тут он и говорит:"Я знаю полностью, как устроен микропроцессор" (речь завели об обычной ПЭВМ, соответственно это он о пентиуме вел речь). Я решил пошутить, и сказал:"Сможешь мне нарисовать его схему на транзисторах?". Он посмотрел на меня удивленно и ответил: "Там нет транзисторов...". laughing.gif
Может человеку лучше начать с этого? Ну или начать с книги по цифровой электронике, где в начале объясняется работа транзисторов в ключевом режиме? Тогда по крайней мере у него прояснится вопрос с "логическими уровнями" и "электрическими уровнями"... И потом можно будет перейти к стандартной логике, регистрам и т.д. И в завершении копнуть в сторону цифровых автоматов (хотя необходимый объем обычно в учебнике по цифровой электронике имеется и специальную литературу читать не придется). smile.gif


согласен. Тогда человеку нужно почитать вот это - Е.П.Угрюмов "Цифровая схемотехника". Толковая книжка, много аспектов охвачено. Для того, чтобы нарисовать для себя начальную картину цифрового мира - более чем. Кстати, и разжевано толково

Цитата(Vagant @ Sep 6 2009, 23:15) *
Наверное то что они более гибкие (в том смысле что реализуют больше функций чем жёсткая логика) хотя и помедленнее работают.


ну так поэтому и есть процессоры, у которых команд как грязи, но и машинный цикл длится кучу тактов (CISC), а есть с УСЕЧЕННЫМ набором команд, но и выполняются они за 1-2-3 такта максимум (RISC). И это не считая всяких конвейеров и иже с ними всяких оптимизаций

Цитата(Vagant @ Sep 6 2009, 19:29) *
А существует ли простой и ясный ответ на мой вроде бы простой вопрос? Имеется ввиду, ответ без привлечения всей теории цифровых систем.


ну знаете... это примерно как рассказать об устройстве "винтопрул" - все ж очень даже просто. Винт вертится, вот он и ПРЕТ biggrin.gif
Go to the top of the page
 
+Quote Post
Microwatt
сообщение Sep 6 2009, 22:56
Сообщение #23


Гуру
******

Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802



Цитата(Dog Pawlowa @ Sep 6 2009, 21:49) *
А вот ни фига и Ваш Соучек врет.
Меня учили так, что альтернативой жесткой комбинационной схеме является микропрограммный автомат.
Ну "микро" должно же что-то значить?! smile.gif

Та то Вам не все секреты в бурсе рассказывали. В войну синус доходил до семи!
Далеко не все процессоры строят по микропрограммной архитектуре. Эта архитектура громоздка и медленно работающая, хотя позволяет реализовать очень большое количество и очень сложных команд.
Практически все микроконтроллеры сегодня строят по одноцикловой схеме (RISC). Команд мало, но все выполняются быстро и практически за одно время. Микропрограммника, как такового, в них нет, есть одна большая жесткая логика дешифратора команд.
Для понимания вычислительной техники, мне кажется, лучше начать знакомство с вопросом именно с таких процессоров. Хотя, стартеру по-моему, надо для начала с 2И-НЕ разобраться и построить самому на них пару схем вроде десятичного или семисегментного дешифратора.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Sep 7 2009, 04:42
Сообщение #24


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Vagant @ Sep 6 2009, 18:34) *
add R2 R1
преобразуется в последовательность кодов которые микропроцессор исполняет. Но мне тогда непонятно откуда берутся эти коды и как микропроцессор их понимает?

коды берутся из памяти, в которую их предварительно кто-то положил (вы, например, или начальный загрузчик)
Как процессор "понимает" команды? да никак он их не понимает. Это тупой автомат.
Как автомобиль "понимает", что при надавливании на педаль газа нужно пошире приоткрыть форсунки, поменять угол опережения и ещё чего-то по мелочи?

Когда я впервые узнал, как работает процессор 580ВМ80, я был разочарован...
Сначала тоже казалось всё так сказочно - прямо чуть ли не искуственный интеллект на ладони. А оказалось - тупейшее устройство из нескольких тысяч транзисторов


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
iosifk
сообщение Sep 7 2009, 04:47
Сообщение #25


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Предлагаю посмотреть у меня на сайте цикл статей "Микропроцессор своими руками"...
Думаю, что после прочтения тему можно будет закрыть...
Удачи!


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Vagant
сообщение Sep 7 2009, 05:31
Сообщение #26


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 25-09-07
Пользователь №: 30 820



Цитата(toweroff @ Sep 7 2009, 01:26) *
ну знаете... это примерно как рассказать об устройстве "винтопрул" - все ж очень даже просто. Винт вертится, вот он и ПРЕТ biggrin.gif


Да вот. smile.gif Русский язык настолько богат что любые самые сложные вещи можно обьяснять на разных уровнях - от тов Шарикова до профессора МГУ по кафедре орнитологии - и им будет понятно.


Цитата(iosifk @ Sep 7 2009, 07:47) *
Предлагаю посмотреть у меня на сайте цикл статей "Микропроцессор своими руками"...
Думаю, что после прочтения тему можно будет закрыть...
Удачи!


Спасибо читаю, интересно (хотя сразу видно что CV написано скорее на Runglish чем на English). smile.gif

Сообщение отредактировал Vagant - Sep 7 2009, 05:47
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Sep 7 2009, 05:32
Сообщение #27


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Если объяснять совсем на пальцах, то код команды чётко структурирован, и отдельные битики или группы битов - это своеобразные "педальки", которые рулят отдельными блоками процессора.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Vagant
сообщение Sep 7 2009, 06:16
Сообщение #28


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 25-09-07
Пользователь №: 30 820



Цитата(MrYuran @ Sep 7 2009, 07:42) *
коды берутся из памяти, в которую их предварительно кто-то положил (вы, например, или начальный загрузчик)
Как процессор "понимает" команды? да никак он их не понимает. Это тупой автомат.
Как автомобиль "понимает", что при надавливании на педаль газа нужно пошире приоткрыть форсунки, поменять угол опережения и ещё чего-то по мелочи?

Когда я впервые узнал, как работает процессор 580ВМ80, я был разочарован...
Сначала тоже казалось всё так сказочно - прямо чуть ли не искуственный интеллект на ладони. А оказалось - тупейшее устройство из нескольких тысяч транзисторов


Тут вся идея наверное в том как из простых вещей создать что-то сложное и как им управлять. Из 3-5 видов логических элементов построены почти все цифровые системы. А в музыке, например, только 7 основных нот а какое разнообразие жанров, стилей и музыкальных направлений существует. В биохимии, например, только из менее чем пары десятков аминокислот природа создала сотни тысяч разных белков, которые и есть жизнь.

Сообщение отредактировал Vagant - Sep 7 2009, 06:24
Go to the top of the page
 
+Quote Post
Vagant
сообщение Sep 7 2009, 08:31
Сообщение #29


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 25-09-07
Пользователь №: 30 820



В общем, как я понял, команды процессора и их коды (КОП - код операции) это мнемонические обозначения придуманные человеком для обозначения специализированных функций жёсткой логики. А в процессоре обработка данных происходит приблизительно так - послал процессору один код команды и данные идут на вход жёсткой (или не очень жёсткой) логики соответствующей этому коду, послал другой код - данные идут на вход другой жёсткой (или не очень жёсткой) логики. Так что работа процессора сводится к тому что в результате применения команды процессора данные попадают на вход жёсткой логики специально созданной для каждой команды.
Правильно ли я представляю себе это?
Go to the top of the page
 
+Quote Post
Microwatt
сообщение Sep 7 2009, 09:36
Сообщение #30


Гуру
******

Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802



Цитата(Vagant @ Sep 7 2009, 11:31) *
Так что работа процессора сводится к тому что в результате применения команды процессора данные попадают на вход жёсткой логики специально созданной для каждой команды.
Правильно ли я представляю себе это?

Да вход у этой жесткой логики ОДИН (с постоянным числом разрядов) и выходы тоже постоянны по количеству. Просто на выходах появляются комбинации управляющих сигналов в соответствии с уникальным кодом команды на входе.
Простейший жесткий автомат... Ну, когда поймете как работает семисегментный дешифратор - считайте поняли логическую матрицу процессора. Все то же, но по размерам и числу комбинаций намного больше.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Sep 7 2009, 10:49
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(Vagant @ Sep 7 2009, 12:31) *
А в процессоре обработка данных происходит приблизительно так - послал процессору один код команды и данные идут на вход жёсткой (или не очень жёсткой) логики соответствующей этому коду, послал другой код - данные идут на вход другой жёсткой (или не очень жёсткой) логики. Так что работа процессора сводится к тому что в результате применения команды процессора данные попадают на вход жёсткой логики специально созданной для каждой команды.
Правильно ли я представляю себе это?


ничего на вход процессора не подается. Это он САМ в соответствии с логикой своего автомата Мура лезет в память и делает выборку команды в машинном цикле М0
А что делается дальше с операндами команды - также жестко делается в соответствии с тем же автоматом Мура. Как параметры этому автомату - сама команда, текущий такт цикла и, возможно, операнды с результатами промежуточного выполнения команды
Go to the top of the page
 
+Quote Post
Microwatt
сообщение Sep 7 2009, 12:22
Сообщение #32


Гуру
******

Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802



Цитата(toweroff @ Sep 7 2009, 13:49) *
Это он САМ в соответствии с логикой своего автомата Мура лезет в память и делает выборку команды в машинном цикле М0

Да что вы микропрограммник растолковываете? Полная каша в голове у вопрошающего будет.
Ему бы понять как простой потенциальный шифратор-дешифратор на И-НЕ работает.
Go to the top of the page
 
+Quote Post
Vagant
сообщение Sep 7 2009, 13:08
Сообщение #33


Частый гость
**

Группа: Участник
Сообщений: 111
Регистрация: 25-09-07
Пользователь №: 30 820



Цитата(Microwatt @ Sep 7 2009, 15:22) *
Да что вы микропрограммник растолковываете? Полная каша в голове у вопрошающего будет.
Ему бы понять как простой потенциальный шифратор-дешифратор на И-НЕ работает.


Ничего страшного. Каша будет но пройдёт. smile.gif Я этот тред потом скопирую себе в отдельный файл и буду по книжкам разбираться а файл почитывать время от времени. Так что все мнения пригодятся.

P.S. Есть такая вещь - кривая обучения (как на картинке). Сначала "каша", а потом (с увеличением числа попыток) - подьём.

Сообщение отредактировал Vagant - Sep 7 2009, 13:13
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th August 2025 - 23:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.01664 секунд с 7
ELECTRONIX ©2004-2016