Техника

Что такое регистр с физической точке зрения?

Программирование и физика на самом деле связаны крайне слабо, причём эта связь односторонняя. То есть для решения физических задач часто приходится прибегать к помощи копьютеров и программирования (в серьёзных физических экспериментах без этого просто никуда) , а вот обратное - понять принципы программирования через физические основы работы устройств - дело бесполезное. Потому что одна и та же программа может быть реализована на РАЗНЫХ физических устройствах. Даже на механических или пневматических (было такое направление в создании программируемых устройств - пневмоника. Там вместо электрических токов использовались потоки воздуха - устойчивость к электрическим помехам абсолютная!) .
Программа работает, полностью абстрагируясь от физической реализации устройства. Регистры и данные - это всего лишь состояния отдельных компонентов, из которых реализована аппаратная часть устройства. Это может быть реле (замкнуто - разомкнуто) , это может быть ламповый или транзисторный триггер (ток идёт через одно плечо - ток идёт через другое плечо) , это может быть КМОП-триггер, через который в стационарном состоянии ток вообще не течёт, но зато напряжение на разных плечах разное для разных состояний, и может быть даже конденсатор (заряд есть - заряда нет) . Не говоря уж о "фотонике", где сигнал - это наличие света.
Естественно, что ФИЗИЧЕСКИ все эти устройства выглядят по-разному. Работа реле сильно отличается от работы КМОП-инвертора. Но ИНФОРМАЦИОННО все они тождественны, а поэтому и программе, и программисту совершенно по фигу, что там происходит с электронами и участвую ли там ещё и дырки, и являются ли протекающие токи потоками электронов или потоком воздуха в трубочках.

Так что если хотите "по максимуму" познать работу полупроводниковых устройств (а на других принципах сейчас ничего более-менее программируемого и не найти.. . не считая разве что механического будильника) , а образование позволяет не бояться сложных формул, - могу посоветовать фундаментальную книжку С. Зи "Физика полупроводниковых приборов". Но этом именно ФИЗИКА ПРИБОРОВ, а не то, как устроен триггер или регистр. И уж тем более не то, как их программировать...
Дмитрий Дорофеев
Дмитрий Дорофеев
94 379
Лучший ответ
На физическом уровне в момент компиляции не происходит ничего - просто созданная Вами запись программы в кодах, удобных для восприятия человеком ("написанная на языке программирования"), перекодируется по заранее заданному алгоритму в запись, удобную для восприятия компьютером ("в машинных кодах").
Во время работы программы - на физическом уровне - происходит открытие или закрытие тех или иных электронных ключей в зависимости от текущего состояния остальных элементов электронной схемы процессора.
С физическими процессами, происходящими в компьютере во время его работы, должны быть знакомы так называемые системные программисты - те, кто создает новые версии операционных систем, драйверы устройств, "прошивки" и т. д. Они - да, должны знать работу устройства именно на уровне процессов, происходящих в микросхемах. Обычный же программист - должен знать языки программирования, но никогда не заморачивается тем, каким образом электроника исполняет создаваемые им программные продукты.
ЕБ
Елена Бусова
92 004
Это относится к программированию на низких уровнях, т. е работа с железом. Все регистры имеют свои адреса, например произошел сбой чтения HD система вписывает в регистр состояние и уточненное состояние HD/ Можно написать прогу которая обрабатывает все сбои лучше чем винда. Книг много, если интересуют напишите в личку завтра вышлю. Автор по моему Джордан.
Уилфред 22+
Уилфред 22+
97 569
Регистр - ячейка памяти с которой взаимодействоет процессор (его "исполняющая" часть, если точно) . Внешнее оборудование может с ним работать лишь при помощи программ :-) (как-то так)

Вообще в современных ОС (к программированию микроконтролелров это конечно не относится) с оборудование программы взаимодействуют через специальные "прослойки" (обычно - реализованные "с точки зрения программы" как чтение/запись в файлы) . Типа, прога пишет чё-то в "файл", например COM1 (условно, пора уже USB юзать :-)), ОС это дело перехватывает и кидает данные в оборудование (с чтением всё аналогично)
физические процессы наверное будет лучше понять по учебникам для техникумов по радиотехнике, автоматике и т. п. .
авторов не скажу, т. к. давно это было. но найти их не составит труда.
в первую очередь это основы импульсной техники или импульсная техника. в таких книжках подробно разбирается работа элементарной логики, "и-или-не" и простых схем на базе ее, триггеры и память, счетчики, дешифраторы, мультиплексоры и прочее. на базе этих схем собирают все функциональные узлы процессоров.
более верхний уровень - это разобраться с процессорами х86. причем именно 8086. и логика сопутствующая им. более высокие модели процессоров будет гораздо легче понять по аналогии. а может это вообще не понадобится: почитаете обзоры современных процессоров (типа компьютерровских) и примете для себя все навороты как данность.
если хочется лезть наоборот поглубже - это книги по микроэлектронике. там узнаете как электроны и дырки летают в полупроводнике, образуют транзисторы и диоды, как физически устроены микросхемы, но это уже слишком глубоко. тут связь между программированием и предметной областью полностью теряется.
ИП
Игорь Попов
7 458

Похожие вопросы