Форум Херсона. Форум Херсонской молодежи, флейм, фотографии Херсона, политика в Херсоне, сетевой форум, сети Херсона


Приветствуем на Форум Херсона. Форум Херсонской молодежи..

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

Если возникнут проблемы с регистрацией напишите нам.

Галерея форума Блоги пользователей Список банов
Вернуться   Форум Херсона. Форум Херсонской молодежи. > > >
Регистрация СправкаСтатистика Пользователи Календарь Сообщения за день

Тема: Процессор, память и ОС. Ответить в теме
Ваше имя пользователя: Для входа нажмите здесь
Проверка вопроса системы антиспама "NoSpam!"
Краще місто в Україні?
Image Verification
Пожалуйста, введите шесть букв и/или цифр, которые изображены на картинке.

Заголовок:
  
Сообщение:
Иконки для сообщения
Вы можете выбрать иконку, характеризующую сообщение:
 

Дополнительные опции
Другое

Просмотр темы (Новые вначале)
23.12.2011 10:17
intel64 Поскольку озу более медленное устройство в сравнении с процессором, а команды и данные обрабатываются в процессоре, то в его состав входит так называемая регистровая память или просто регистры, основанные на транзисторах. Назначений у регистров в принципе два: часть из них играют роль высокоскоростного буфера между вычислительными блоками процессора и оперативным запоминающим устройством, а часть служит для управления поведением процессора и получения некоторой его служебной информации.

У каждого регистра есть свое символьное представление в ассемблере, тобишь наименование. Например eax, ebx, ecx, edi, esi и т.д. На первом рисунке прошлого поста можете увидеть как происходит манипулирование регистрами. Упомянутые регистры относятся к группе регистров общего назначения, которые и есть буфером для хранения промежуточных результатов вычислений. Важно также знать, что разрядность регистров общего назначения определяет разрядность процессора, то есть когда мы говорим «у меня 32-х разрядный процессор», то это означает что РОНы у него 32-х битные(4 байта). У 64-битного процессора РОНы 64 бита(8 байт). У 16 битного сколько? правильно, - 16 бит. Также стоит упомянуть, что регистры общего назначения являются целочисленными, иными словами хранят только целые числа и на 32-х разрядном процессоре их всего 8 штук.

дали буде
22.12.2011 12:22
intel64 Когда-то давно, последовательным вводом нулей и единиц программировался центральный процессор. Спустя какое-то время стало ясно, что для того, чтобы ввести даже небольшую программу нужно потратить уйму времени, так как в этих нулях и единицах черт ногу сломит, ибо кол-во инструкций становилось больше и больше. Поэтому был придуман мнемонический аналог машинного языка, и назывался он ассемблер. По-русски ассемблер это сборщик, тобишь так называлась программа, которая транслировала более понятные для человека осмысленные буквенные команды в машинный двоичный код.

На рисунке ниже часть 32-х разрядной программы на языке х86 ассемблера.

Вложение 173083

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

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

На рисунке ниже часть программы на языке Си.

Вложение 173084

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

пока все.
17.12.2011 12:25
intel64 В нескольких постах попробую в общем рассказать, что же представляет из себя программное обеспечение на самом деле, так сказать изнутри.

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

Согласно технических мануалов, команда любого процессора называется инструкцией, а вся его куча инструкций называется набор инструкций (Instruction Set). Инструкции делятся на группы, например арифметические, логические, передача данных, передача управления и т.д.

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

Вложение 172717 Вложение 172715

Каждая из клеточек - байт. У каждой клеточки есть свой адрес от 0 и до некоторого максимума. Любой процессор начинает свое выполнение по заранее определенному адресу, и как правило на это адрес спроецирована микросхема ПЗУ, в которой находится код BIOS. Инструкции могут быть переменной длины, от одного до нескольких байт. В самой инструкции закодирован ее размер, поэтому процессор знает где находится следующая. Например на рисунке выше первая команда, находящаяся по адресу 0, - 8BFFh имеет размер 2 байта, следующая за ней 55h один байт, следующая 8BECh 2 байта и т.д.

на рисунке ниже, содержимое памяти, представленное в ее так сказать "оригинальном", двоичном виде. Каждое значение отражает состояние битов в байтах, 0 - низкий уровень сигнала, 1 - высокий соответственно. Значения сгрупированы по 8 бит, тобишь байтами.

Вложение 172987

Пока все. Далее продолжение о командах.
15.12.2011 18:09
Павел да не очень хотелось разводить стопицот тем чтобы обсудить один вопрос
15.12.2011 17:32
PhoeniXX
Цитата:
Сообщение от Павел Посмотреть сообщение
может я не туда влез
Да, ты не туда влез. Этот топик совершенно не имеет отношения к твоему вопросу. Можно было сделать новый.
26.11.2011 11:42
intel64 Продолжу свой монолог ).

Выяснили, что ОЗУ и оборудование разделяют одно адресное пространство, которое называется физическим и зависит от разрядности шины адреса. Ранее в постах я изображал систему с 1 и 2 ГБ ОЗУ. Что же происходит, когда в систему устанавливают 4ГБ рам?

С приходом 32-х разрядных систем на базе процессора 80386, был достаточно некисло переработан и чипсет. Отныне новое оборудование, разработанное по новой спецификации PCI, проецировалось в диапазон между 3-м и 4-м гигабайтом, так как стало ясно, что в ближайшие годы, объемы рам будут сильно расти. Исключением было некоторое устаревшее оборудование для обратной совместимости, - например видеоадаптеры на шине ISA были доступны только между 15-16 мегабайтом и этот мегабайт назывался Memory Hole. Кто давно компьютерами занимается, может помнит в BIOS такую опцию. Если было установлено например 64Мб ОЗУ и какой-нить видеоадаптер на шине ISA и включена опция Memory Hole, то доступно было только 63Мб ОЗУ так как её 1 мегабайт был перекрыт(«невидим»). Почему оборудование всегда размещают в верхних диапазонах, в общем-то, должно быть понятно.

Когда-то я уже постил рисунок, который ниже. На нем изображено слева, физическое адресное пространство, то которое адресует процессор, а справа адресное пространство драмконтроллера. Например, когда процессор выставит адрес в диапазоне PCI Memory Address Range (красн. квадр.2), то этот адрес в итоге будет преобразован чипсетом в адрес на шине PCI, и обращение будет к оборудованию, если же процессор выставит адрес из диапазона Main Memory Address Range, то адрес будет преобразован чипсетом в соответствующий адрес для драмконтроллера, и обращение будет к ОЗУ, если оно там есть. Запутал наверно совсем, да? ))

Вложение 171341

На рисунке в квадрате 3 показана та часть адресного пространства драмконтроллера, которая будет перекрыта периферийным оборудованием в случаи, если не будет задействована технология Memory Remap. Появилась эта технология начиная с чипсетов в табличке ниже.

Вложение 171342

С включенным Memory Remap, BIOS перепрограммирует чипсет так, что рам в квадратике 3, будет доступна по адресам в квадратике 1, за пределами 4Гб диапазона.

Для этого поста достаточно. Это общая информация, к подробностям вернемся позже, после того как расскажу как все это «видит» ОС и ПО.
21.10.2011 08:55
intel64 Для того чтобы процессор мог записать и прочитать ячейку, будь-то оборудования или ОЗУ, этой ячейке должен быть присвоен адрес. Такой механизм называется проекцией. Никто не мешает присвоить ячейке оборудования один адрес, после чего присвоить ей другой, конечно с определенными оговорками. Такие действия называются распределение и перераспределение ресурсов. Как это осуществляется пока рассматривать рано. Сейчас нужно запомнить что, ОЗУ проецируется на адресное пространство памяти, а порты могут проецироваться как на адресное пространство памяти так и на адресное пространство в\в.

Основной информацией в проецировании ОЗУ является то, что проекция на адресное пространство памяти осуществляется всегда с нулевого адреса. Например, если у нас есть одна планку ОЗУ с 1 Гб памяти, то и в 4-х гигабайтовом адресном пространстве, «достучаться» до нее процессор сможет только выставляя на шину адреса, числа в диапазоне от 0 до 1073741824. Таким образом, если оперативным запоминающим устройством занято 1Гб адресов, то это значит что есть свободных еще 3Гб адресов, на которые можно спроецировать еще ОЗУ )) или оборудование.

На рисунке ниже показано как на адресное пространство памяти спроецирована ОЗУ 1 гигабайт и видеопамять. Если предположить что на борту карты 256Мб видеопамяти, то соответственно 268435456 адресов будут заняты для доступа к ней.

Вложение 168902

Если процессор выставит на шину адреса число 3221225472, то он осуществит доступ к нулевой ячейке видеопамяти, будь-то чтение или запись.
18.10.2011 15:02
intel64 Итак, выяснили, для того чтобы управлять периферийным оборудованием, а также записывать данные в него и читать из него, процессор использует адресное пространство в\в. Такой метод обращения к оборудованию, называется прямой ввод\вывод(Direct I\O). Смотрите рисунок ниже.

Вложение 168750

Существует и второй метод обращения к оборудованию, который называется проецируемый в память ввод\вывод (memory-mapped I\O). Как видно из названия, ячейки оборудования(порты), через которые оно управляется, доступны теперь НЕ через адресное пространство в\в, а через адресное пространство памяти, через которое, напомню, процессор осуществляет доступ к ОЗУ. См. рисунок.

Вложение 168751

Ответ на вопрос - почему некоторое оборудование стали проецировать на адресное пространство памяти, пока опустим, так как причин несколько, и некоторые понять на данном этапе будет сложно.

На рисунке ниже показана часть карты физического адресного пространства. На этой карте показаны только диапазоны адресов, занятые периферийным оборудованием, ОЗУ на нем отсутствует. Его там нет, собственно потому, что оно не является периферийным оборудованием.

Вложение 168753

В подтверждение того, что физическое адресное пространство на 32-х разрядной системе без PAE – 32-х разрядное, на рисунке ниже показано, что максимальный занятый адрес FEFE1FFF, принадлежащий «ресурсы системной платы», не превышает 4Гб.

Вложение 168752

В некоторых компьютерных системах адресного пространства ввода\вывода не существует вообще, например в известных контроллерах MIPS. Там используется только проецируемый в память в\в, то есть все оборудование и рам разделяют одно физическое адресное пространство.
12.10.2011 11:03
intel64 несколько поправок к прошлым постам.

Цитата:
Сообщение от intel64 Посмотреть сообщение
Каждый из бит может быть в одном из двух состояний либо логический 0 это когда заряд конденсатора около 0 вольт, либо в состоянии логической единицы, когда заряд конденсатора около 5 вольт
на самом деле, разные типы микросхем памяти имеют различные напряжения для низкого и высокого уровней сигналов, отражающие логический 0 и 1 соответственно. Для конктретного типа памяти нужно читать спецификацию.

Цитата:
Сообщение от intel64 Посмотреть сообщение
Ниже распиновка процессора 386SX, прародитель 32-х разрядных процессоров семейства х86, можно было взять любой но на него я наткнулся первым.
здесь я немного неудачно выбрал процессор. Дело в том что, 386SX это урезанная модель процессора 386DX. 386SX вместо 32-рязрядной шины адреса, как у DX, имел 24-разрядную, что во-первых удешевляло конструкцию, посему процессор предназначался для использования в настольных ПК, а во-вторых, благодаря шине такой разрядности, имел физическое адресное пространство памяти размером 16 мегабайт, для совместимости с их предшественником, процессором 80286. Но смысла этой темы это не меняет, а наоборот, еще раз убеждаемся что от разрядности адресной шины зависит длина физического адресного пространства.
Например,
16-ти разрадная шина -64Кб
20-ти разрядная шина - 1Мб
24-х разрядная - 16мб
32-х разрядная - 4Гб
36-ти разрядная, используется в 32-х разрядных процессорах, с реализацией механизма PAE - 64Гб.
52-х разрядная в архитектурах AMD64\intel64 - сколько это терабайт или экзабайт считайте сами ).

В общем смысл в том, что ни о какой адресуемой ОЗУ(RAM) речи не идет. Речь о наборе адресов, которые процессор может выставить на свою шину адреса.
09.10.2011 18:36
intel64 Как уже было сказано, адресное пространство памяти используется для доступа к ОЗУ, а адресное пространство в\в для доступа к оборудованию.

Что означает доступ к оборудованию?

Доступ к памяти осуществляется записью\чтением ячеек памяти, доступ к оборудованию осуществляется точно также записью\чтением ячеек памяти, которые физически находятся на самом устройстве, например на видеокарте, или в контроллере клавиатуры. То есть и озу имеет ячейки памяти, доступные через адресное пространство памяти и устройства имеют ячейки памяти(регистры), которые доступны через адресное пространство в\в. Для того чтобы различать эти ячейки, ячейки оборудования называют портами, а еще точнее портами ввода\вывода. Адресное пространство в\в также как и памяти побайтово адресуемо, тоесть нельзя прочитать\записать бит, только байт. Порты могут быть длиной 8 или 16 бит, тобишь 1 или 2 байта.

На рисунке ниже в продолжение прошлого, показана часть карты пространства ввода\вывода.

Вложение 168222

Красным показана, для примера, клавиатура. Порты, через которые она управляется, находятся по адресам 60h и 64h, каждый порт длиной один байт. Цифры показаны в шестнадцатеричной форме, то есть возьмем калькулятор, и переведем в десятичный вид, порт 60h – это 96-й байт от начала адресного пространства в\в. Второй порт можете перевести самостоятельно.

В подтверждение о том, что адресное пространство в\в 16-ти разрядное, то есть 65536 байт, на следующем рисунке показано, что максимальный занятый адрес порта - FFAFh, IDE контроллера, не превышает диапазон 64кб.

Вложение 168225

На другом компьютере цифры вполне могут немного разниться, но большинство адресов портов стандартизированы и закреплены за конкретным типом устройства.
09.10.2011 12:54
intel64 Шина адреса. Продолжение.

Итак выяснили, что разрядность шины адреса определяет количество адресов, которые процессор может выставить на нее(шину) для обращения к памяти. То есть повторимся, на 32-х разрядную шину можно подать 4294967295 различных комбинаций чисел (электрических разрядов). Вот это количество адресов называется адресным пространством.

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


ВАЖНО!

Установленный объем оперативной памяти (ОЗУ) может быть меньше чем размер физического адресного пространства. См. рис.

Вложение 168186

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

Помимо адресного пространства памяти существуют еще 2. До одного из них нам еще очень далеко, а вот второе называется адресное пространство ввода\вывода.

Адресное пространство ввода\вывода, в дальнейшем в\в, используется для доступа и управления периферийным оборудованием, - клавиатура, флопик, видеокарта и т.д. Про адресное пространство в\в чуть дальше.

Управляющая шина.

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

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

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

Вложение 168187

красным выделена одна из линий управляющей шины. Как видно у каждой есть свое наименование. Линия, которую рассматриваем мы, переключатель адресных пространств, называется M\IO, тоесть Memory\InputOutput. Когда процессор хочет указать к какому из двух адресных пространств он хочет обратиться, то есть обращается сейчас либо к памяти либо к оборудованию, он «переключает» эту линию. Под словом «переключает» подразумевается установка уровня сигнала, если уровень сигнала низкий, логический ноль, то обращение происходит к адресному пространству памяти, если же уровень сигнала высокий, логическая единица, то обращение происходит к адресному пространству в\в.


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

Вложение 168188

где Address– контакты адресной шины,
Data – шина данных, Control – управляющая шина, Vcc, Vss– контакты связанные с питанием узлов процессора.

Возвращаемся к адресному пространству ввода\вывода.

Как и размер адресного пространства памяти зависит от шины адреса, пространство в\в зависит также от разрядности шины. Для доступа к пространству в\в, так же как и для адресного пространства памяти, используется адресная шина, только не все 32 линии, а только 16, таким образом пространство в\в составляет 65536 байт или 64Кб.

Эксперимент )

Открываем управление компьютером, переходим на вкладку диспетчер устройств, в меню выбираем ресурсы по типу и видим вот такое

Вложение 168189

В этих списках показаны карты двух адресных пространств, - памяти и ввода\вывода. О том что это за куча цифр в следующем посте.
08.10.2011 12:31
intel64
Процессор, память и ОС.

Так как никто на этом форуме, как мне кажется, не понимает о чем идет речь, когда говорят о цифрах 2 3 4 и т.д. связанных с памятью и дабы избавить себя и форум от стопитсот разового повторения одного и того же, создаю сей топ, в котором постараюсь объяснить о чем же все-таки речь на самом деле.
Я отдаю себе отчет в том что, объяснение сложными техническими терминами только осложнит понимание на первом этапе, поэтому я постраюсь максимально упростить изложение.

Начнем с простой теории. Ту или иную информацию которую вы знаете можете пропустить.
Существуют два основных устройства, которые собсно и представляют собой компьютер (compute - вычислять), - это центральный процессор и память. Начнем сначало с памяти. Так как возможности пощупать ячейки, которые хранят информацию и представляющие собой конденсаторы, у нас нет, нужно иметь какую-то ассоциацию с этими ячейками.

Вот. Тетрадка в клеточку.

Вложение 168134

Каждая из клеточек это ячейка размером один байт. Один байт это группа из 8 бит. Каждый из бит может быть в одном из двух состояний либо логический 0 это когда заряд конденсатора около 0 вольт, либо в состоянии логической единицы, когда заряд конденсатора около 5 вольт.

Почему один байт?
Процессор и память соеденины между собой устройствами именуемые шинами. Шины это паралельные проводники по которым передается информация.

Вложение 168135

По своему назначению шины существую трех типов – шина данных, шина адреса, управляющая шина.
У шины адреса и шины данных есть такая характеристика как разрядность. Как было сказано выше шина это группа параллельных проводников, так вот разрядность это количество этих самых проводников. Тоесть, 16-ти разрядная шина это шина с 16-ю параллельными проводниками, 32-х разрядная шина это шина с 32-мя проводниками. По каждому из проводников передается один бит(один электрический разряд), таким образом, например, по 32-разрядной шине передается за один раз 32 бита информации или 4 байта, так как напомню в байте 8 бит.

Шина адреса.
По этой шине процессор передает число, которое определяет к какому байту(клеточке на тетрадке) он хочет обратиться с операцией чтения или записи, тоесть память побайтово адресуема. Если давать байту определение то оно будет выглядеть так, БАЙТ – это минимально адресуемая единица информации. Если шина адреса имеет разрядность 16 бит (16 параллельных проводников), то обратиться он сможет максимум к 65536 ячейкам(байтам) или 64-м килобайтам. Если шина адреса 32 разряда, то обратиться процессор сможет к 4294967295 ячейкам(байтам) или 4 гигабайтам.

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

Ваши права в разделе
Вы не можете создавать темы
Вы можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.

Время на сервере: 19:29.

Регистрация Справка Пользователи Календарь Сообщения за день

vBulletin 3, Copyright © 2000-2024, Jelsoft Enterprises Ltd.
Русский перевод: zCarot, Vovan & Co