Techniczne podstawy informatyki

Prowadzący

Szymon Gut

Opis

Dla informatyków-teoretyków komputer jest Maszyną Turinga, albo nawet dużą funkcją przekształcającą jeden stan pamięci w drugi [ citation needed ]. Dla programistów czarną skrzynką, która wykonuje napisane przez nich programy. A czym jest komputer dla elektronika? Plątaniną układów scalonych, elementów dyskretnych i ścieżek. Właśnie takiemu podejściu będziemy się starali przyjrzeć na warsztatach.

Zobaczymy jak wygląda dioda, tranzystor i układ scalony, dowiemy się jak zrobić bramkę logiczną, jak przechowywać bity informacji w układzie, co w środku mają procesory i jak czytać kod asemblera.

Program zajęć

  1. prąd stały
  2. podstawowe elementy półprzewodnikowe - diody, tranzystory
  3. bramki logiczne
  4. większe układy - kombinacyjne, sekwencyjne, przerzutniki, rejestry
  5. architektura komputera
  6. wykonanie programu napisanego w C, jego związek z asemblerem

Proste bramki logiczne i mniejsze układy zbudujemy sobie sami na płytce stykowej. Przy okazji paląc diody i wybuchając kondensatory. Płytki oraz potrzebne elementy będą zapewnione. Działanie większych układów będziemy symulować na tablicy i w wyobraźni. Do analizowania wykonania programu przydadzą się laptopy.

Wymagania

  • znajomość zagadnień związanych z prądem stałym na poziomie liceum
  • znajomość języka C ze szczególnym uwzględnieniem wskaźników
  • dostęp do laptopa z Linuksem
  • odporność na wysokie napięcie

Zadania kwalifikacyjne

Warsztaty mają charakter interdyscyplinarny. Mam nadzieję, że informatycy poradzą sobie z fizyką, a fizycy nie przerażą informatyką.
Rozwiązania proszę przesyłać mi na maila. Dobrze by było zrobić wszystkie, w każdym razie należy wszystkie rozgrzebać.

1. półprzewodniki
Wytłumacz dlaczego dioda przewodzi prąd tylko w jedną stronę.

2. wzmacniacz operacyjny
Wzmacniacz operacyjny to układ elektroniczny, którego schemat wygląda następująco.

wzmacniacz.gif

Napięcie wyjściowe idealnego wzmacniacza operacyjnego dane jest wzorem $U_{WY} = \beta ( U_{WE+} - U_{WE-} )$, gdzie $\beta$ jest bardzo duże (naprawdę bardzo). Napięcia mierzymy względem masy (napięcia 0). Do wejść nie wpływają żadne prądy, a z wyjścia może wypływać dowolnie duży. Udowodnij, że poniższy układ elektroniczny daje na wyjściu napięcie $U_{WY} = - (U_1 + U_2)$.

sumator.gif

Symbol odwróconego "T" oznacza właśnie masę. Wszystkie oporniki mają jednakową rezystancję.

3. niskopoziomowe C(++)
Dana jest funkcja

void f() {
    int x=0;
    g();
    printf("%d\n", x);
}

Zaimplementuj funkcję g(), która podmieni wartość zmiennej x. Kod powinien działać na kompilatorze gcc pod Linuksem. Do rozwiązania dołącz informację ilubitowy masz procesor.
Hint: zbadaj położenie zmiennej x w pamięci.

Dodatkowe informacje

Nieobciążona jaskółka rozwija prędkość do 300 km/h.

O ile nie zaznaczono inaczej, treść tej strony objęta jest licencją Creative Commons Attribution-ShareAlike 3.0 License