Architektura komputerów



Podobne dokumenty
ARCHITEKTURA SYSTEMÓW MIKROPROCESOROWYCH. dr inż. Małgorzata Langer B9, pok. 310 Instytut Elektroniki

Struktura i działanie jednostki centralnej

Organizacja typowego mikroprocesora

Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów.

Logiczny model komputera i działanie procesora. Część 1.

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Architektura komputerów

Magistrala systemowa (System Bus)

Budowa i zasada działania komputera. dr Artur Bartoszewski

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Architektura komputerów

Architektura komputerów Wykład 2

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

Architektura komputera

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

Architektura typu Single-Cycle

LEKCJA TEMAT: Zasada działania komputera.

Architektura komputerów

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

LEKCJA TEMAT: Współczesne procesory.

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011

Architektura potokowa RISC

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Architektura komputerów

organizacja procesora 8086

Urządzenia zewnętrzne

Architektura komputerów

Podstawy Informatyki Układ sterujący

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

Przykładowe pytania DSP 1

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

dr inż. Małgorzata Langer Architektura komputerów

LICZNIKI PODZIAŁ I PARAMETRY

f we DZIELNIKI I PODZIELNIKI CZĘSTOTLIWOŚCI Dzielnik częstotliwości: układ dający impuls na wyjściu co P impulsów na wejściu

UKŁADY MIKROPROGRAMOWALNE

Bramki logiczne Podstawowe składniki wszystkich układów logicznych

Budowa komputera Komputer computer computare

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

Projektowanie. Projektowanie mikroprocesorów

LEKCJA. TEMAT: Funktory logiczne.

Architektura komputerów

Cyfrowe układy sekwencyjne. 5 grudnia 2013 Wojciech Kucewicz 2

Pracownia elektryczna i elektroniczna. Elektronika cyfrowa. Ćwiczenie nr 5.

Tranzystor JFET i MOSFET zas. działania

Krótkie przypomnienie

dwójkę liczącą Licznikiem Podział liczników:

MIKROKONTROLERY I MIKROPROCESORY

Architektura systemów komputerowych. Przetwarzanie potokowe I

Architektura systemów komputerowych

Architektura komputerów

Architektura komputerów wer. 7

Sławomir Kulesza. Projektowanie automatów asynchronicznych

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Automatyzacja i robotyzacja procesów produkcyjnych

Podstawy Informatyki JA-L i Pamięci

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Sterowniki Programowalne (SP)

WPROWADZENIE Mikrosterownik mikrokontrolery

Arytmetyka liczb binarnych

Projekt prostego procesora

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne...

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Architektura komputerów

Budowa Mikrokomputera

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne

Standard transmisji równoległej LPT Centronics

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

dr hab. Joanna Jędrzejowicz Podstawy informatyki i komputeryzacji Gdańska Wyższa Szkoła Humanistyczna

Programowanie Mikrokontrolerów

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

ARCHITEKTURA PROCESORA,

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Plan wykładu. Architektura systemów komputerowych. Cezary Bolek

Technika mikroprocesorowa I Wykład 2

Budowa systemów komputerowych

Automatyka. Treść wykładów: Multiplekser. Układ kombinacyjny. Demultiplekser. Koder

dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia i ich zastosowań w przemyśle" POKL

Elementy oprogramowania sterowników. Instrukcje podstawowe, funkcje logiczne, układy czasowe i liczenia, znaczniki

Podstawy Techniki Mikroprocesorowej

Architektura Systemów Komputerowych

Programowanie w językach asemblera i C

ZARZĄDZANIE SIECIAMI TELEKOMUNIKACYJNYMI

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++

Architektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące

Architektura komputerów Wprowadzenie do algorytmów

Programowalne układy logiczne

Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

Mikroprocesor Operacje wejścia / wyjścia

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Transkrypt:

Wykład jest przygotowany dla IV semestru kierunku Elektronika i Telekomunikacja. Studia I stopnia Dr inż. Małgorzata Langer Architektura komputerów Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie Innowacyjna dydaktyka bez ograniczeń zintegrowany rozwój Politechniki Łódzkiej zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych Zadanie nr 30 Dostosowanie kierunku Elektronika i Telekomunikacja do potrzeb rynku pracy i gospodarki opartej na wiedzy 90-924 Łódź, ul. Żeromskiego 116, tel. 042 631 28 83 www.kapitalludzki.p.lodz.pl

Podstawowa architektura komputera w aspekcie jego budowy Projektant komputera wybiera architekturę maszyny w oparciu o koszt i korzyści płynące z możliwej zoptymalizowanej organizacji przy wykorzystaniu dostępnych elementów sprzętu (hardware) i oprogramowania (software). Każdy element może być wdrożony w różnych postaciach zależnie od postawionych wymagań i dostępnej (lub wybranej) technologii W SZCZEGÓLNOŚCI BUDOWA KOMPUTERA MUSI ODZWIERCIEDLIĆ WSZYSTKIE MINIMALNE WYMAGANIA POSTAWIONE PRZEZ ASPEKT ORGANIZACJI PRACY (poprzedni wykład)

Parametry podstawowe dla konstrukcji komputera Wybrany zestaw instrukcji Długość słowa Ustalone formaty instrukcji i danych Sposób zaprojektowania (i technologia) rejestrów i pamięci Ścieżka przepływu danych i instrukcji Projekt jednostki arytmetycznej i logicznej Mechanizm I/O Generowanie sygnałów sterujących Projekt jednostki sterującej

Wykonanie programu Po załadowaniu kodu obiektu do pamięci, można rozpocząć jego wykonywanie poprzez ustawienie licznika programu na adres startu i aktywację (przycisku, rozkazu, ) START Instrukcje są wtedy pobierane z pamięci i kolejno wykonywane, aż pojawi się instrukcja HLT, albo wcześniej wystąpi błąd (i wtedy: co dalej? ) Wykonywanie instrukcji składa się z dwóch etapów: - pobieranie instrukcji - wykonanie instrukcji

Pobieranie instrukcji Słowo z instrukcją musi zostać pobrane z pamięci do rejestru instrukcji (IR) W tym celu zawartość licznika programu (PC) przeniesiona zostaje do MAR i wykonana zostaje operacja odczytu pamięci słowo zostaje przeniesione do MBR Następnie instrukcja zostaje przeniesiona do IR, a wewnętrzna logika sterowania musi dodać 1 do zawartości PC, aby wskazywał instrukcję następną Taka sekwencja pobierania instrukcji jest niezmienna obowiązuje dla wszystkich instrukcji

Wykonywanie instrukcji Po zdekodowaniu kodu instrukcji (opcode) następuje faza wykonywania, unikalna dla każdej instrukcji Najczęściej jest to sekwencja operacji, jeżeli potrzeba, z wczytywaniem danych, obliczaniem adresu, itp. Po fazie wykonywania maszyna wraca do fazy pobierania Jeżeli instrukcja używa trybu pośredniego adresowania, potrzebna jest faza dodatkowa do obliczenia efektywnego adresu tzw. Faza opóźniająca (defer phase) POBIERANIE, WYKONYWANIE ORAZ OPÓŹNIENIE (ewentualnie) SKŁADAJĄ SIĘ NA CYKL INSTRUKCJI

Ścieżki przepływu pomiędzy rejestrami Faza pobierania i obliczania adresu (A) adres; (I) instrukcja; 1 zwiększenie o 1

Struktura magistrali Połączenia rejestrów mogłyby być realizowane jako każdy indywidualnie ze wszystkimi potrzebnymi NIEREALNE! Lub przy pomocy MAGISTRALI (bus), która łączy wszystkie rejestry Single bus magistrala pojedyncza wszystkie dane i adresy płyną przez jedną magistralę Multibus wiele magistral każda przeznaczona do wyznaczonych transferów, np. oddzielna dla danych a inna dla adresów MULTIBUS pozwala na równoległy przepływ operacje wykonywane równolegle

Przykładowa struktura magistrali w ASC [S.G.Shiva; Computer Organization, Design and Architecture] Przy wykonywaniu np dodawania BUS1 i BUS2 podadzą składniki a wynik zostanie podany na BUS3

Czas przesyłu Dane wchodzą do rejestru przy dodatnim (rosnącym) zboczu zegara Sygnał zegarowy jest generowany przez jednostkę sterującą (oraz inne sygnały sterujące do wyboru źródła i przeznaczenia) Zegar musi mieć podłączenie do wszystkich rejestrów Czas potrzebny na przeniesienie jednostki danych ze źródła do przeznaczenia poprzez ALU jest czasem TRANSFERU REJESTRU Częstotliwość zegara musi być maksymalnie taka, aby podczas okresu zegara zakończył się najwolniejszy transfer CZAS TRANSFERU REJESTRU DECYDUJE O PRĘDKOŚCI PRZETWARZANIA

Praca przy pojedynczej magistrali W takiej strukturze konieczne są rejestry buforowe. Przy dodawaniu, albo jeden ze składników, albo wynik, musi być zapisany w buforze, zanim można go przesłać do rejestru przeznaczenia Przy pojedynczej magistrali konieczne są więc dodatkowe transfery NIEKTÓRE OPERACJE BĘDĄ WYMAGAŁY WIĘCEJ CZASU Praca komputera z pojedynczą magistralą jest WOLNIEJSZA niż z multibus

ALU jednostka arytmetyczna i logiczna ALU jest strukturą, która wykonuje wszystkie działania arytmetyczne i logiczne W PROSTYM KOMPUTERZE zestaw instrukcji musi obejmować przynajmniej: - dodawanie dwóch liczb - obliczanie uzupełnienia dwójkowego do liczby - przesuwanie zawartości akumulatora o jeden bit w prawo, lub w lewo - bezpośredni transfer dowolnego ze swoich wejść na wyjście, aby umożliwić operacje przesyłu danych, typu IR MBR oraz MAR IR

Minimalny zestaw instrukcji: Założenie 1: Jednostka sterująca maszyny dostarczy odpowiednie sygnały sterujące do ALU, aby wykonać operacje (identyfikowane jako nazwy instrukcji) Założenie 2: Mamy 3 magistrale BUS1 i BUS2 na wejścia, BUS3 wyjście ALU; pozycje bitów numerowane są od lewej (15) do prawej (0) ADD: BUS3 BUS1 + BUS2 COMP: BUS3 BUS SHR: BUS3 BUS1 15 BUS1 15-1 SHL: BUS3 BUS 14-0 0 TRA1: BUS3 BUS1 TRA2: BUS3 BUS2

ADD Obwód dodawania musi się składać z 15 sumatorów pełnych i jednego pół-sumatora dla najmniej znaczącego bitu (0) Wyjście sumy każdego bitu jest bramkowane w bramce AND z sygnałem sterującym ADD Wyjście przeniesienia z każdego bitu jest wejściem na wejście bitu przeniesienia kolejnego bardziej znaczącego bitu. (Pół-sumator nie posiada wejścia na bit przeniesienia, a najbardziej znaczący sumator (15) bit przeniesienia podaje jako znacznik błędu do rejestru stanu PSR) Zawartość bitów akumulatora na magistrali BUS1 dodawana jest do zawartości MBR na BUS2 i zawartość zapisana zostaje w akumulatorze

Obwód dla pojedynczego bitu Bit 0 dla SHR nie jest podłączony do bitu mniej znaczącego BUS3, więc sygnał jest tracony

COMP Logiczny obwód to 16 bramek NOT, po jednej dla każdego bitu BUS1 Otrzymujemy w ten sposób uzupełnienie jedynkowe do liczby. Wyjście z każdej bramki NOT jest bramkowane na bramce AND z sygnałem COMP Wynik pośredni jest zawartością akumulatora i wynik zostaje zapisany w akumulatorze Dwójkowe uzupełnienie to uzupełnienie jedynkowe i dodanie 1 do wyniku (TCA uzupełnienie dwójkowe z zapisem w akumulatorze)

SHR Przesuwanie w prawo odbywa się poprzez połączenie każdego bitu BUS1 do sąsiadującego mniej znaczącego bitu BUS3 Transfer jest bramkowany przez sygnał sterujący SHR Najmniej znaczący bit z BUS1 (BUS1 0 ) jest tracony w procesie przesuwania Najbardziej znaczący bit BUS3 15 jest wypełniony bitem znaku

SHL Przesuwanie w lewo odbywa się poprzez połączenie każdego bitu BUS1 do sąsiadującego bardziej znaczącego bitu BUS3 Transfer jest bramkowany przez sygnał sterujący SHL Najbardziej znaczący bit z BUS1 (BUS1 15 ) jest tracony w procesie przesuwania Najmniej znaczący bit z BUS3 (BUS3 0 ) zostaje wypełniony zerem

TRA1 i TRA2 TRA1 każdy bit z BUS1 zostaje przeniesiony na odpowiadający mu bit BUS3, zawsze z bramkowaniem sygnałem TRA1 TRA2 każdy bit z BUS2 zostaje przeniesiony na odpowiadający mu bit BUS3, zawsze z bramkowaniem sygnałem TRA2

Schemat logiczny ALU dla typowego bitu

Rejestr stanu - PSR Bity PSR są uaktualniane równocześnie z aktualizacją akumulatora C N Z O I Zapisywane są następujące bity: - C bit przeniesienia (C out ) przy dodawaniu bit przeniesienia z najbardziej znaczącej pozycji - 15 - N znak ujemny (bit BUS3 15 ) - Z bit zera (gdy wszystkie bity BUS3 są zerami) - O bit przepełnienia (gdy podczas dodawania suma przekracza (2 15 1), czyli gdy oba bity znaku składników są jedynkami, a wyniku zerem lub odwrotnie), (lub przy SHL, gdy zmienia się bit znaku) - I przerwanie bit podawany z układu sterującego

CPU Central Processing Unit Jest to połączenie ALU i jednostki sterującej Jego funkcją jest GENEROWANIE SYGNAŁÓW STERUJĄCYCH potrzebnych przez inne bloki urządzenia, WE WCZEŚNIEJ OKREŚLONEJ KOLEJNOŚCI, tak, aby spowodować sekwencję działań wywoływanych przez każdą instrukcję Schemat blokowy Uwaga: CLOCK jest podłączony do wszystkich rejestrów

CPU DATA przerzutnik ułatwiający handshake (nawiązanie kontaktu) między CPU a urządzeniami I/O RUN przerzutnik ustawiany sygnałem START (np. z zewnętrznego panelu sterującego) aby uaktywnić dowolną mikrooperację STATE dwubitowy rejestr stanu umożliwiający rozróżnienie trzech faz (pobierz, opóźnij, wykonaj)

SYGNAŁY CPU Wejścia zewnętrzne: z rejestrów (PSR, IR, indeksowych), urządzeń I/O Wejścia wewnętrzne: zawartości (bity przerzutników) danych, rejestru stanu (STATE), rejestru RUN, zegar (CLOCK) Sygnały generowane na potrzeby wewnętrzne: sygnały zmiany stanu (pobierz, opóźnij, wykonaj, reset dla DATA, reset dla RUN) WYJŚCIA: - do pamięci (READ, WRITE) - do ALU (TRA1, TRA2, ADD, COMP, SHR, SHL) - do I/O (INPUT, OUTPUT) - do magistrali

Sygnały CPU do struktury magistrali ACC do BUS1 MAR do BUS1 IR 7-0 do BUS1 PC do BUS1 1 do BUS1-1 do BUS1 INDEX do BUS2 MBR do BUS2 1 do BUS2 SWITCHBANK do BUS2 BUS3 do ACC BUS3 do INDEX BUS3 do MAR BUS3 do MBR BUS3 do PC BUS3 do MONITOR BUS3 do IR DIL do ACC ACC do DOL

WEJŚCIE / WYJŚCIE Nawet najprostszy komputer musi posiadać przynajmniej jedno urządzenie wejściowe (np. klawiatura) i jedno wyjściowe (np. wyświetlacz, lub drukarka) Najprostszym jest programowane urządzenie I/O RWD podczas wykonywania tej instrukcji CPU wydaje komendę urządzeniu wejściowemu do przesłania słowa danych i czeka Kiedy urządzenie wejściowe ma gotowe słowo w buforze danych, informuje o tym CPU CPU bramkuje wtedy przepływ danych do ACC poprzez DIL (data input line)

WEJŚCIE / WYJŚCIE WWD CPU bramkuje wyjściowe słowo danych z ACC do DOL (data output line), wydaje komendę urządzeniu wyjściowemu do przyjęcia danych i czeka Gdy urządzenie wyjściowe poprzez swoje bramki umieści słowo danych w swoim buforze informuje CPU o akceptacji danych. CPU może przystąpić do wykonywania następnej instrukcji Wymieniane sygnały informacyjne handshaking W obu operacjach największy czas zabiera czekanie urządzenia I/O są zawsze znacznie wolniejsze od CPU WNIOSEK: Programowane urządzenia I/O są co prawda bardzo proste, ale bardzo wolne. W takim schemacie CPU nie może podczas czekania robić nic innego (nie otrzymało sygnału o zakończeniu instrukcji)

Rodzaje jednostek sterujących Każdy cykl instrukcji składa się z trzech faz, a każda z faz składa się z sekwencji mikrooperacji Mikrooperacja może oznaczać jedno z następujących działań: - pojedynczy transfer rejestru (zawartość jednego rejestru przeniesiona do innego rejestru) -złożony transfer rejestru, zatrudniający ALU (np. suma z dwóch rejestrów przeniesiona do trzeciego rejestru przeznaczenia) - operacja zapisu do pamięci lub odczytu z pamięci Jednostki sterujące mogą być: - wykonaną strukturą bramek, przerzutników i połączeń, która generuje sygnały sterujące (HCU hardwared control unit) - programowalną jednostką, gdzie mikrooperacje dla każdej instrukcji są zapisane w pamięci (MCU microprogrammed control unit) sygnały sterujące są generowane poprzez dekodowanie mikroinstrukcji

HCU może być: SYNCHRONICZNE każda operacja jest sterowana zegarem; stan jednostki sterującej można określić znając stan zegara Częstotliwość zegara musi być taka, że odległość między kolejnymi pulsami musi pozwolić na wykonanie najwolniejszej mikrooperacji. ASYNCHRONICZNE zakończenie jednej operacji wyzwala początek następnej; nie istnieje sygnał zegarowy Konstrukcja jest nieco bardziej skomplikowana, ale ograniczone funkcjonalnie asynchroniczne HCU mogą być znacznie szybsze od ich synchronicznych odpowiedników

Pamięć a prędkość procesora Czas dostępu pamięci równy jest dwóm czasom transferu rejestru Podczas odczytu, jeżeli adres jest bramkowany do MAR razem z instrukcją READ, dane będą dostępne w MBR na koniec następnego czasu transferu rejestru Podczas zapisywania, jeżeli dane i adres są odpowiednio dostarczone do MAR i MBR, z sygnałem sterującym WRITE, pamięć kończy zapisywanie danych z końcem drugiego czasu transferu rejestru Zawartość MAR nie może zostac zmieniona aż do zakończenia instrukcji READ lub WRITE

Charakterystyki czasowe pamięci

Cykl maszynowy W synchronicznych układach sterujących czas pomiędzy kolejnymi impulsami zegara takt - (czas transferu rejestru) jest określony przez operację transferu najwolniejszego rejestru. W przypadku ASC jest to sumator w ALU. Takt, inaczej czas transferu rejestru, nazywany jest czasem cyklu procesora, lub małym cyklem Przejście pomiędzy stanami pobierz, opóźnij, wykonaj konstrukcyjnie uważa się za dodatkowy mały cykl (CP 4 ) Główny cykl procesora składa się z kilku cykli małych Cykl instrukcji składa się z jednego lub więcej głównych cyklów procesora

MCU Mikroprogramy odpowiadające każdej instrukcji przechowywane są w pamięci ROM (Read Only Memory) Nazwa CROM oznacza pamięć sterującą Control ROM; µcu microcontrol unit µcu jest zwykle prostym HCU, którego funkcją jest wykonywanie mikroprogramów zawartych w CROM W CROM mikroprogram zapisywany jest w postaci binarnej Czas wymagany do wykonania instrukcji jest funkcją ilości mikroinstrukcji w danej sekwencji (każda mikroinstrukcja pobierana jest w dwóch taktach (czas transferu najwolniejszego rejestru + czas dostępu CROM) EMULACJA dowolnego procesora w złożonych systemach komputerowych polega na wpisaniu do pamięci mikroprogramów i tym samym utworzenie namiastki CROM

Schemat blokowy MCU

KONIEC CZĘŚCI PIĄTEJ Dr inż. Małgorzata Langer Architektura komputerów Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie Innowacyjna dydaktyka bez ograniczeń zintegrowany rozwój Politechniki Łódzkiej zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych Zadanie nr 30 Dostosowanie kierunku Elektronika i Telekomunikacja do potrzeb rynku pracy i gospodarki opartej na wiedzy 90-924 Łódź, ul. Żeromskiego 116, tel. 042 631 28 83 www.kapitalludzki.p.lodz.pl