Архитектура материнских плат

В мире существует множество компьютеров различных фирм различающихся по сложности, назначению и т.д., основной частью которых является материнская плата. Материнская плата — основная плата персонального компьютера, её по — другому называют системной платой. Современная материнская плата ПК, как правило, включает в себя чипсет, осуществляющий взаимодействие центрального процессора с ОЗУ и основной оперативной памятью, с портами ввода/вывода, со слотами расширения PCIExpress, PCI, а также, обычно, с USB, SATA и IDE/ATA. Большинство устройств, которые могут присоединяться к материнской плате, делают это с помощью одного или нескольких слотов расширения или сокетов, а некоторые современные материнские платы поддерживают беспроводные устройства, использующие протоколы IrDA, Bluetooth, или

802.11 (WI-Fi).

Архитектура материнских плат 1

Рис.1 Материнская плата стандарта ATX (модель MSI K7T266 Pro2)

Центральный микропроцессор – основная микросхема компьютера, в которой производятся все вычисления. Процессор на материнской плате закреплён в специальном гнезде, называемым сокетом.

Архитектура материнских плат 2

Рис.2 Socket 754(AMD)

Сокет — гнездовой или щелевой разъём, предназначен для облегчения установки центрального процессора. Использование разъёма вместо прямого распаивания процессора на материнской плате упрощает замену процессора для модернизации или ремонта компьютера. Разъём может быть предназначен для установки собственно процессора или CPU-карты (например в Pegasos).

Каждый разъём допускает установку только определённого типа центральных процессоров илиCPU-карт. В современных материнских платах, использующих процессоры х86 , разъёмы обозначаются трехзначными номерами, при этом номер соответствует числу пинов (ножек) процессора. Старые разъёмы обозначаются в порядке выпуска, обычно одной цифрой. Приведём примеры сокетов различных фирм.

Разъёмыпроцессоров Inte l:

  • Socket 1— Intel 80486;
  • Socket 423 — процессоры intel Pentium 4 и Celeron (основанныенаядре Willamette);
  • Socket 478 — процессоры Intel Pentium 4 и Celeron (основанныенаядрах Northwood, Prescott и Willamette);
  • Socket479 — процессоры Intel Pentium M и Celeron M (основанныенаядрах Banias и Dothan);
  • Socket480 — процессоры Intel Pentium M (основанные на ядре Yonah);
  • Socket 603/604 — процессоры Intel Xeon основанные на ядрах Northwood и Willamette Pentium 4;
  • SocketT/LGA 775 — процессоры IntelPentium 4 и Celeron (основанные на ядрах Prescott и CedarMill);
  • Socket 775 — процессорыIntel Core 2 Quad/Core 2 Extreme/Core 2 Extreme/Pentium 4/Extreme;
  • Socket 771 — процессорыIntel Xeon серии 50хх, 51хх(основанныенаядре Dempsey и Woodcrest)и Xeon серии 53хх (основанныенаядре Clovertown );

Разъёмыпроцессоровфирмы AMD:

8 стр., 3702 слов

Микропроцессорный датчик скорости на базе процессора КР1878ВE1 ‘Тесей’

... используется для изменения алгоритма работы программы. Примером может служить датчик поворота. Допустим, наша микропроцессорная ... SR7), обращение к которым производится специальными командами процессора. Значения этих регистров можно сохранять в отдельном ... развивающих игр или КБ5004ВЕ1 — БИС банковской интеллектуальной платёжной карты с многоуровневой системой защиты. Характерными особенностями ...

  • Socket A (Socket 462) — семействопроцессоров AMD K7 (Athlon, Athlon XP, Sempron и Duron);
  • Socket563 — процессоры Athlon XP-M с низким потреблением энергии;
  • Socket 754 — процессоры AMD Athlon 64 нижнего уровня и процессоры;
  • Sempron с поддержкой только одноканального режима работы с памятью;
  • Socket 939 — процессоры AMD Athlon 64 и AMD Athlon FX с поддержкой двухканального режима работы с памятью;
  • Socket940 — процессоры AMD Opteron и ранние AMD Athlon FX (от 939 отличается одной «ногой», которая используется для контроля правильности прочитанных данных из памяти (ECC);
  • SocketAM2 — новый сокет для процессоров AMD. Имеет 940 контактов, но не совместим с Socket 940;
  • SocketAM2+ — перспективная замена для Socket AM2 (в настоящее время уже выпускается);
  • прямая и обратная совместимость с сокетом AM2 для всех планируемых материнских плат и процессоров;
  • SocketAM3 — перспективная замена для Socket AM2+ (выпуск запланирован на конец 2007 — начало 2008г.);
  • Socket (Socket 1207) — новый сокет для процессоров Opteron;
  • Socket S1— сокетдляпроцессоров Mobile Sempron;
  • На материнской плате устанавливаются две основные микросхемы: северный и южный мост ,образующие вместе чипсет.

Северный мост (от англ. Northbridge) — один из основных элементов чипсета компьютера, отвечающий за работу с процессором, памятью и видеоадаптером. Северный мост определяет частоту системной шины, возможный тип оперативной памяти (в системах на базе процессоров Intel) (SDRAM, DDR, другие), её максимальный объем и скорость обмена информацией с процессором. Кроме того, от северного моста зависит наличие шины видеоадаптера, её тип и в северный мост нередко встраивают и графическое ядро. Во многих случаях именно северный мост определяет тип и быстродействие шины расширения системы (PCI,PCIExpress, другое).

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

Южный мост (от англ. Southbridge), также известен как контроллер-концентратор ввода-вывода от англ. I/O Controller Hub (ICH).

Это микросхема, которая реализует «медленные» взаимодействия на материнской плате между чипсетом материнской платы и её компонентами. Южный мост обычно не подключён напрямую к процессору (CPU), в отличие от северного моста. Северный мост связывает южный мост с CPU. Функционально южный мост включает в себя:

4 стр., 1625 слов

Структурная схема северного моста

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

  • Шину PCI;
  • шину ISA;
  • SMBus (SM шина) или интерфейс I2C;DMAконтроллер;
  • контроллер прерываний;
  • IDE (SATA или PATA) контроллеры;
  • шина LPC Bridge;
  • часы реального времени (Real Time Clock);
  • управление питанием (Power management (APM и ACPI);
  • энергонезависимую память BIOS (CMOS);
  • звуковой контроллер AC97 (опционально).

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

Реже южный мост включает в себя поддержку клавиатуры, мыши и последовательных портов, но обычно эти устройства подключаются с помощью другого устройства – Super I/O (контроллера ввода-вывода).

Поддержка шины PCI включает в себя традиционную спецификацию PCI, но может также обеспечивать поддержку шины PCI-X и PCIExpress. Хотя поддержка шины ISA используется достаточно редко, она осталась неотъемлемой частью современного южного моста. Шина SM используется для связи с другими устройствами на материнской плате (например, для управления вентиляторами).

Контроллер DMA позволяет устройствам на шине ISA или LPI получать прямой доступ к оперативной памяти, обходясь без помощи центрального процессора. Контроллер прерываний обеспечивает механизм выделения центрального процессора каждому устройству. IDE интерфейс позволяет работать системе с жёсткими дисками.LPC шина обеспечивает передачу данных и управление SIO (это такие устройства, как клавиатура, мышь, параллельный ,последовательный порт, инфракрасный порт и флоппи-контроллер) и BIOS ROM (флеш).

APM или ACPI функции позволяет перевести компьютер в «спящий режим» или выключить его. Системная память CMOS, поддерживаемая питанием от батареи, позволяет создать ограниченную по объёму область памяти для хранения системных настроек (настроек BIOS).

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

ISA (англ. IndustryStandardArchitecture, ISAbus) — 8-ми или 16-ти разрядная системная шина IBMPC-совместимых компьютеров. Служит для подключения плат расширения стандарта ISA. Конструктивно выполняется в виде 62-х или 98-контактного разъёма на материнской плате.

С появлением материнских плат формата ATX шина ISA перестала широко использоваться в компьютерах, хотя встречаются ATX-платы с AGP 4x,6 PCI и одним или двумя потами ISA.

PCI (англ. Peripheral component interconnect, дословно: взаимосвязь периферийных компонентов) — системная шина для подключения периферийных устройств к материнской плате компьютера.

Форм-фактор материнской платы — стандарт, определяющий размеры материнской платы для персонального компьютера, места ее крепления к корпусу; расположение на ней интерфейсов шин, портов ввода/вывода, сокета центрального процессора и слотов для оперативной памяти, а также тип разъема для подключения блока питания.

Форм-фактор (как и любые другие стандарты) носит рекомендательный характер, однако подавляющее большинство производителей предпочитают его соблюдать, поскольку ценой соответствия существующим стандартам является совместимость материнской платы и стандартизированного оборудования (периферии, карт расширения) других производителей. Устаревшими считаются: Baby-AT; Mini-ATX; полноразмерная плата AT; LPX. Современными считаются: ATX; microATX; Flex-АТХ; NLX; WTX.

Внедряемыми считаются: Mini-ITX и Nano-ITX;Pico-ITX; BTX, MicroBTX и PicoBTX

Существуют материнские платы несоответствующие никаким из существующих форм-факторов (см. таблицу).

Обычно это обусловлено либо тем, что производимый компьютер узкоспециализирован, либо желанием производителя материнской платы самостоятельно производить и периферийные устройства к ней, либо невозможностью использования стандартных компонентов (так называемый «брэнд», например AppleComputer, Commodore, SiliconGraphics, HewlettPackard, Compag чаще других игнорировали стандарты; кроме того в нынешнем виде распределённый рынок производства сформировался только к 1987 г., когда многие производители уже создали собственные платформы).

Форм-фактор Физические размеры Спецификация, год Примечание
XT 8,5 Ч 11″ (216 Ч 279 мм) IBM,1983 архитектура IBM PC XT
AT 12 Ч 11″–13″ (305 Ч 279–330 мм) IBM, 1984 архитектура IBM PC AT (Desktop/Tower)
Baby-AT 8,5″ Ч 10″–13″ (216 Ч 254-330 мм) IBM, 1990 архитектура IBM PC XT (форм-фактор считается недействительным с 1996 г.)
ATX 12″ Ч 9,6″ (305 Ч 244 мм) Intel,1995 для системных блоков типов MiniTower, FullTower
ATX Riser Intel, 1999 для cистемных блоков типа Slim
eATX 12″ Ч 13″ (305 Ч 330 мм)
Mini-ATX 11,2″ Ч 8,2″ (284 Ч 208 мм) для системных блоков типа Tower и компактных Desktop
microATX 9,6″ Ч 9,6″ (244 Ч 244 мм) Intel, 1997 имеет меньше слотов чем ATX, также возможно использование меньшего PSU
LPX 9″ Ч 11″–13″ (229 Ч 279–330 мм) Western Digital, 1987 для системных блоков типа Slim
Mini-LPX 8″–9″ Ч 10″–11″ (203–229 мм Ч 254–279 мм) Western Digital,1987 для системных блоков типа Slim
NLX 8″–9″ Ч 10″-13,6″ (203–229 мм Ч 254–345 мм) Intel, 1997 Предусмотрен AGP, лучшее охлаждение чем у LPX
FlexATX 9,6″ Ч 7,5″-9.6″ (244 Ч ?-244 мм) Intel, 1999 разработан как замена для форм-фактора MicroATX
Mini-ITX 6,7″ Ч 6,7″ (170 Ч 170 мм) VIA Technologies 2003 допускаются только 100 Вт блоки питания
Nano-ITX (120 Ч 120 мм) VIA Technologies, 2004
BTX 12,8″ Ч 10,5″ (325 Ч 267 мм) Intel, 2004 допускается до 7 слотов и 10 отверстий для монтажа платы
MicroBTX 10,4″ Ч 10,5″ (264 Ч 267 мм) Intel, 2004 допускается до 4 слотов и 7 отверстий для монтажа платы
PicoBTX 8,0″ Ч 10,5″ (203 Ч 267 мм) Intel, 2004 допускается 1 слот и 4 отверстия для монтажа платы
WTX 14″ Ч 16,75″ (355,6 Ч 425,4 мм) 1999 для высокопроизводительных рабочих станций и серверов среднего уровня
ETX и PC-104 используются для встраиваемых (embedded) систем

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

Список литературы

[Электронный ресурс]//URL: https://drprom.ru/referat/yujnyiy-most/

1. Борзенко, А. IBM PC: устройство, ремонт, модернизация [Текст] / А. Борзенко // Журнал Компьютер Пресс. – 1995. – январь. – С. 52-55.

2. Аврин, С. Компьютерные артерии [Текст] / С. Аврин // Журнал Hard ‘n’ Soft. – 1994. – №6. – С. 29–33.

3. Фролов, А.В. Аппаратное обеспечение IBMPC[Текст] / А.В. Фролов, Г.В.Фролов // Журнал ДИАЛОГ-МИФИ. – 1992. – С. 202-206.

4. Скотт Мюллер Модернизация и ремонт ПК [Текст] / Скотт Мюллер //Журнал Вильямс. – 2007. – С. 241–443.

Задание №2

Рисунок 1– Блок-схема к заданию №2

Задание  1

Полный исходный текст программы

/* задача про прямоугольники */

#include <stdio.h>

main()

{

int a, b, c, d;

//вводсторонпрямоугодьников

printf(«Enter fore positive numbers: «);

  • scanf(«%d%d%d%d», &a, &b, &c, &d);

/* условия выполнения задачи*/

if((c > a)&&(d > b))

printf(«Yes\n»);//прямоугольник со сторонами a, b вмещается в прямоугольник со сторонами c, d

else

if((c > b)&&(d > a ))

printf(«Yes\n»);//прямоугольник со сторонами a, b вмещается в прямоугольник со сторонами c, d

else

printf(«No\n»);//прямоугольник со сторонами a, b не вмещается в прямоугольник со сторонами c, d

getch();

  • return 0;

}

Задание №3

Рисунок 2– Блок-схема к заданию №3

Задание  2

Полный исходный текст программы

#include <stdio.h>

  • void ch(int *, int*);//прототипфункции ch

main() {

int n=0, m=0, i, j;

  • int a[26][26]; // объявление массива

//прозьба ввести границы матрицы, удовлетворяющие условию

while (((m==0)||(m>25))||((n==0)||(n>25))) {

printf(«Enter n\n»);

  • scanf(«%i», &n);
  • printf(«Enter m\n»);
  • scanf(«%i», &m);
  • printf(«\n»);

}

//заполнение и вывод исходной матрицы

for (i = 1; i <= n; i++) {

for (j = 1;j <= m; j++) {

a[i][j] = j;

  • printf(«%3i», a[i][j]);

}

printf («\n»);

}

printf («\n»);

/*преобразование исходной матрицы с помощью функции ch */

for(j = 1; j <= (m – m %2); j++) {

if (j%2) {

for( i =1; i <= n; i++) {

ch(&a[i][j+1],&a[i][j]);

}

}

}

/*вывод преобразованной матрицы*/

for (i = 1; i <= n; i++) {

for (j = 1; j <= m; j++) {

printf(«%3i», a[i][j]);

}

printf («\n»);

}

return 0;//выход из функции main и из всей программы

}

void ch(int * x, int * y)// определение функции

{

// замена элементов строки местами

int t;

  • t = *x;
  • x = *y;

Задание №4

Рисунок 3– Блок-схема к заданию №4

Задание  3 Задание  4Задание  5Функция main

Задание  6
Задание  7

Задание  8

Задание  9

newPtr->data = value;

  • newPtr->nextPtr = NULL;
  • currentPtr = *sPtr;

Задание  10

newPtr = malloc(sizeof(LISTNODE));;

Задание  11Функция insert — вставляет элемент в список

Задание  12

Функция prinList — печатает список

Задание  13
Задание  14

Функция oneLeft – возвращает 1, если в списке остался один элемент, иначе возвращает ноль

Задание  15

Функция delete4 — удаляет элемент из списка

Задание  16

Полный исходный текст программы

// подключение стандартных заголовочных файлов

#include <stdio.h>

  • #include <stdlib.h>

// определение структуры — ячейки связного циклического списка

struct listNode{

int data;

  • struct listNode *nextPtr;

};

//определение типа структуры и указателя на нее

typedef struct listNode LISTNODE;

  • typedef LISTNODE *LISTNODEPTR;

// прототипы функций

// функция вывода списка

int prinList(LISTNODEPTR *);

// функция вставки в список

void insert(LISTNODEPTR *, int);

// функция удаления элемента списка

intdelete4(LISTNODEPTR *, int);

// предсказывающая функция

intoneLeft(LISTNODEPTR);

// функция main

main () {

// определение указателя на начало списка

LISTNODEPTR startPtr= NULL;

  • int g;
  • printf(«Please fill the list with INTEGER value.\nAdding is stoped by 0 value.\n»);

// ввод значения для заполнения списка

scanf(«%i», &g);

while (g!=0) {

// вызов функции вставки в список и передача ей адреса первого элемента списка и значения нового элемента

insert(&startPtr, g);

  • scanf(«%i», &g);

}

printf(«\n __________________________________________\n»);

  • printf(«\n List IS: \n»);

// выводит на экран список и проверяет возвращаемое функцией вывода списка значение

if (prinList(&startPtr)) { //если выведено успешно

// ввод значения удовлетворяющего условию типа int и условию задачи

while ((g<1)||(g>32000)) {

printf («\nEnter number to delete: «);

  • scanf(«%i», &g);

}

printf(«\n»);

// пока не остался один элемент — удалять элементы в соответствии с введенным номером

while((!oneLeft(startPtr))) {

delete4(&startPtr, g);

};

  • printf(«The last element is: «);

// выводит на экрн список

prinList(&startPtr);

  • printf(«\nPress ENTER to exit…»);
  • getch();

}

else { //если вывод списка неуспешен (список пуст или поврежден)

printf(«Nothing to delete\nPress ENTER to exit…»);

  • getch();

}

return 0;

}

// функция вставки в список. Вставляет принятое значение в конец списка

void insert(LISTNODEPTR *sPtr, int value){

// инициализацияпеременных

LISTNODEPTR newPtr, previousPtr, currentPtr;

// выделяем пмять для структуры listnode, и записываем адрес в newPtr

newPtr = malloc(sizeof(LISTNODE));

// если память выделена:

if (newPtr != NULL )

{

// формируем новую ячейку списка

newPtr->data = value;

  • newPtr->nextPtr = NULL;

// ставим указатель currentPtr на начало списка

currentPtr = *sPtr;

// если список пустой:

if (*sPtr == NULL) {

// формируем первый элемент списка

newPtr->nextPtr= *sPtr;

  • sPtr=newPtr;

}

else

{ // если список не пустой

//если список состоит из одного элемента

if ((currentPtr->nextPtr) == NULL) {

// вставляем новый элемент списка и зацикливаем список

newPtr->nextPtr = *sPtr;

  • ((*sPtr)->nextPtr) = newPtr;

}

else { // если список состоит из двух и более

// устанавливаем указатель на currentPtr на последний элемент циклического списка

// пока следующий за currentPtr элемент не начало списка

while (currentPtr->nextPtr != *sPtr) {

// передвигаем currentPtr по списку вперед

currentPtr=currentPtr->nextPtr;

}

// вставляем новый элемент списка и замыкаем список

currentPtr->nextPtr = newPtr;

  • newPtr->nextPtr=*sPtr;

}

}

}

// вывод сообщения об ошибке в случае невыделения памяти

else

printf(«Insuficient Memory!!!!!!! ENOUGH!»);

}

// функция печати списка. Принимает указатель списка и печатает список. Если список пуст — возвращает 0

int prinList(LISTNODEPTR *sPtr)

{

// определение переменной указателя

LISTNODEPTR currentPtr;

// установка указателя на начало списка

currentPtr = *sPtr;

if (currentPtr == NULL) { // еслисписокпустой

printf(«List is empty. \n\n»);

  • return 0;

}

else { // если не пустой

// вывод значения элемента, на который указывает указатель currentPtr

printf(» %d «, currentPtr->data);

// пока следующий за currentPtr не начало списка и не конец списка

while ((currentPtr->nextPtr != *sPtr)&&(currentPtr->nextPtr != NULL)){

// перемещаем указатель currentPtr на следующий элемент

currentPtr = currentPtr -> nextPtr;

// вывод значения элемента, на который указывает указатель currentPtr

printf(» %d «, currentPtr->data);

}

return 1;

}

}

// функция сообщающая о том , что список состоит из одного элемента

int oneLeft(LISTNODEPTR sPtr){

return (sPtr->nextPtr)==NULL;

}

// функция удаления элемента. Удаляет элемент и перемещает указатель, указывающий начало списка, на следующий элемент за удаленным

int delete4(LISTNODEPTR *sPtr, int n){

// инициализацияпеременных

LISTNODEPTR previousPtr, currentPtr, tempPtr;

  • int i,tw=0;

// елси список пуст — выйти из функции

if ((*sPtr)==NULL)

return 0;

// установка указателей

previousPtr = *sPtr;

  • currentPtr = (*sPtr)->nextPtr;

// если удаляем не первый элемент

if(n!=1) {

// устанавливаем указатель currentPtr на удаляемый элемент

// устанавливаем указатель previousPtr на предшествующий ему

for(i=1; i<(n-1); i++) {

previousPtr = currentPtr;

  • currentPtr = currentPtr->nextPtr;

}

}

else { // еслиудаляемпервыйэлемент

// устанавливаем указатель currentPtr на удаляемый элемент

// устанавливаем указатель previousPtr на предшествующий ему

while((currentPtr)!=(*sPtr)){

previousPtr = currentPtr;

  • currentPtr = currentPtr->nextPtr;

}

};

// есливспискене 2 элемента

if( ( ((*sPtr)->nextPtr)->nextPtr )!=*sPtr ) {

//исключаем currentPtr

previousPtr->nextPtr=currentPtr->nextPtr;

}

else {

// разрываемсписок

previousPtr->nextPtr=NULL;

};

// устанавливаем указатель начала списка на следующий за currentPtr элемент

*sPtr=currentPtr->nextPtr;

// удаляем из памяти элемент currentPtr

tempPtr = currentPtr;

  • free(tempPtr);

}

//конец