Государственный внешний долг России
Задание №1
Реферат
<СТАТЬЯ>
Архитектура
материнских плат
В мире существует множество компьютеров
различных фирм различающихся по сложности, назначению и т.д., основной частью
которых является материнская плата. Материнская плата - основная плата
персонального компьютера, её по - другому называют системной платой.
Современная материнская плата ПК, как правило, включает в себя чипсет,
осуществляющий взаимодействие центрального процессора с ОЗУ и основной
оперативной памятью, с портами ввода/вывода, со слотами расширения PCI Express, PCI, а также, обычно, с USB, SATA и IDE/ATA. Большинство устройств,
которые могут присоединяться к материнской плате, делают это с помощью одного
или нескольких слотов расширения или сокетов, а некоторые современные
материнские платы поддерживают беспроводные устройства, использующие протоколы IrDA, Bluetooth, или
802.11 (WI-Fi).
Рис.1 Материнская плата стандарта ATX
(модель MSI K7T266 Pro2)
Центральный микропроцессор – основная
микросхема компьютера, в которой производятся все вычисления. Процессор на материнской
плате закреплён в специальном гнезде, называемым сокетом.
Рис.2 Socket 754(AMD)
Сокет - гнездовой
или щелевой разъём, предназначен для облегчения установки центрального
процессора. Использование разъёма вместо прямого распаивания процессора на
материнской плате упрощает замену процессора для модернизации или ремонта
компьютера. Разъём может быть предназначен для установки собственно процессора
или CPU-карты (например в Pegasos). Каждый разъём допускает
установку только определённого типа центральных
процессоров или CPU-карт. В современных материнских платах, использующих процессоры х86 , разъёмы обозначаются трехзначными номерами, при этом номер
соответствует числу пинов (ножек) процессора. Старые разъёмы обозначаются в
порядке выпуска, обычно одной цифрой. Приведём примеры сокетов различных фирм.
Разъёмы процессоров Intel:
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;
Socket T/LGA 775 — процессоры Intel Pentium 4 и Celeron (основанные на ядрах Prescott и Cedar Mill);
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:
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);
Socket AM2 — новый сокет для процессоров AMD. Имеет
940 контактов, но не совместим с Socket 940;
Socket AM2+ — перспективная замена для Socket AM2
(в настоящее время уже выпускается); прямая и обратная совместимость с сокетом
AM2 для всех планируемых материнских плат и процессоров;
Socket AM3 — перспективная замена для Socket AM2+
(выпуск запланирован на конец 2007 - начало 2008г.);
Socket (Socket 1207) — новый сокет
для процессоров Opteron;
Socket S1— сокет для процессоров Mobile
Sempron;
На
материнской плате устанавливаются две основные микросхемы: северный и южный
мост ,образующие вместе чипсет.
Северный
мост (от англ. Northbridge) — один из основных элементов чипсета компьютера,
отвечающий за работу с процессором, памятью и видеоадаптером. Северный мост
определяет частоту системной шины, возможный тип оперативной памяти (в системах
на базе процессоров Intel) (SDRAM, DDR, другие), её максимальный объем и скорость обмена информацией с
процессором. Кроме того, от северного моста зависит наличие шины видеоадаптера,
её тип и в северный мост нередко встраивают и графическое ядро. Во многих
случаях именно северный мост определяет тип и быстродействие шины расширения
системы (PCI,PCI Express, другое).
Северный мост в значительной степени влияет на то, до какой степени может быть
разогнан компьютер, поскольку используемая им частота является базовой для
частоты работы процессора. В современных системах, когда компьютер становится
быстрее, чип всё более нагревается. Поэтому на сегодняшний день нередко
используются различные типы охлаждения северного моста, например радиаторы или
кулеры.
Южный мост
(от англ. Southbridge), также известен как контроллер-концентратор ввода-вывода
от англ. I/O Controller Hub (ICH). Это микросхема, которая реализует
«медленные» взаимодействия на материнской плате между чипсетом материнской
платы и её компонентами. Южный мост обычно не подключён напрямую к процессору (CPU), в отличие от северного
моста. Северный мост связывает южный мост с CPU. Функционально южный мост
включает в себя:
Шину PCI; шину ISA; SMBus (SM шина) или
интерфейс I2C;DMA контроллер; контроллер прерываний; IDE (SATA или PATA) контроллеры; шина LPC
Bridge; часы реального времени (Real Time Clock); управление питанием (Power
management (APM и ACPI); энергонезависимую память BIOS (CMOS); звуковой контроллер AC97
(опционально).
Опционально
южный мост также может включать в себя поддержку,RAID контроллера, контроллера USB, контроллера Fire Wire и аудио-кодек.
Реже южный
мост включает в себя поддержку клавиатуры, мыши и последовательных портов, но
обычно эти устройства подключаются с помощью другого устройства – Super I/O
(контроллера ввода-вывода). Поддержка шины PCI включает в себя традиционную
спецификацию PCI, но может также обеспечивать поддержку шины PCI-X и PCI Express. Хотя поддержка шины ISA используется достаточно
редко, она осталась неотъемлемой частью современного южного моста. Шина SM
используется для связи с другими устройствами на материнской плате (например,
для управления вентиляторами). Контроллер DMA позволяет устройствам на шине ISA или LPI получать прямой доступ к оперативной
памяти, обходясь без помощи центрального процессора. Контроллер прерываний
обеспечивает механизм выделения центрального процессора каждому устройству. IDE
интерфейс позволяет работать системе с жёсткими дисками.LPC шина обеспечивает передачу данных и управление SIO (это такие устройства, как
клавиатура, мышь, параллельный ,последовательный порт, инфракрасный порт и
флоппи-контроллер) и BIOS ROM (флеш). APM или ACPI функции позволяет перевести компьютер в «спящий режим» или
выключить его. Системная память CMOS, поддерживаемая питанием от батареи, позволяет создать
ограниченную по объёму область памяти для хранения системных настроек (настроек
BIOS).
На
материнской плате располагаются различные шины. Компьютерная шина- подсистема,
которая передает данные и/или питание между компонентами компьютера или между
компьютерами. Обычно шина управляется драйвером. В отличие от связи
точка—точка, к шине можно подключить несколько устройств по одному набору
проводников. Каждая шина определяет свой набор коннекторов для физического
подключения устройств, карт и кабелей.
ISA (англ. Industry Standard Architecture, ISA bus) — 8-ми или 16-ти разрядная
системная шина IBM PC -совместимых компьютеров. Служит для
подключения плат расширения стандарта 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
Существуют
материнские платы несоответствующие никаким из существующих форм-факторов (см.
таблицу). Обычно это обусловлено либо тем, что производимый компьютер узкоспециализирован,
либо желанием производителя материнской платы самостоятельно производить и
периферийные устройства к ней, либо невозможностью использования стандартных
компонентов (так называемый «брэнд», например Apple Computer, Commodore, Silicon Graphics, Hewlett Packard, 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
|
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) систем
|
Все
основные электронные схемы компьютера и необходимые дополнительные устройства
включаются в материнскую плату, или подключаются к ней с помощью слотов расширения.
Говорить о материнской плате в отдельности от всех остальных частей компьютера
не возможно — это комплекс устройств, работающий как один организм.
Список литературы
1. Борзенко, А. IBM PC: устройство,
ремонт, модернизация [Текст] / А. Борзенко // Журнал Компьютер Пресс. – 1995. –
январь. – С. 52-55.
2. Аврин, С. Компьютерные артерии [Текст]
/ С. Аврин // Журнал Hard ‘n’ Soft. – 1994. – №6. – С. 29–33.
3. Фролов, А.В. Аппаратное обеспечение IBM PC [Текст] / А.В. Фролов, Г.В.Фролов // Журнал ДИАЛОГ-МИФИ.
– 1992. – С. 202-206.
4.
Скотт Мюллер Модернизация и ремонт ПК [Текст] / Скотт Мюллер //Журнал Вильямс. – 2007. –
С. 241–443.
Задание №2
Рисунок 1– Блок-схема к заданию №2
Полный
исходный текст программы
/* задача
про прямоугольники */
#include <stdio.h>
main()
{
int a, b, c, d;
//ввод сторон прямоугодьников
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
Полный
исходный текст программы
#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
Функция main
newPtr->data
= value;
newPtr->nextPtr = NULL;
currentPtr = *sPtr;
|
|
newPtr
= malloc(sizeof(LISTNODE));;
|
|
Функция insert - вставляет элемент в список
Функция prinList - печатает список
Функция
oneLeft – возвращает 1, если в списке остался один элемент, иначе возвращает
ноль
Функция delete4 - удаляет элемент из
списка
Полный
исходный текст программы
//
подключение стандартных заголовочных файлов
#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);
// функция
удаления элемента списка
int delete4(LISTNODEPTR *, int);
//
предсказывающая функция
int oneLeft(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);
}
//конец