Vlákno názorů k článku IBM a sedm trpaslíků (pátá část) od klusacek - Neni to chyba? Mel jsem zato ze naopak...

  • Článek je starý, nové názory již nelze přidávat.
  • 20. 1. 2011 19:56

    klusacek (neregistrovaný)

    Neni to chyba? Mel jsem zato ze naopak dvojkovy doplnek se postupne ujal protoze zjednodusil ALU
    i za cenu toho ze nejvetsicislo = -nejmensicislo-1.

    Ve dvojkovem doplnku vam staci 1 unsigned scitacka, -x se vyrabi jako 1+~x tedy odcitani se realizuje jako a-b = a + ~b + 1 kde ta posledni jednicka se scitacce vnuti jako carry-in.

    Jestli se pak na cisla divate znamenkove nebo neznamenkove je uz na vas (projevi se to treba pri porovnavani, kde u znamenkoveho vam uz nestaci pouze sledovat carry a zero flag).

    Naprotitomu v jednickovem doplnku je slozitejsi uz samotna scitacka, protoze kdyz je jeden ze scitancu zaporny, musite provest misto scitani odcitani. Mozna by se to dalo nejakou zapeklitou optimalizaci obvodu dostat na temer stejny pocet hradel jako v pripade dvojkoveho doplnku, ale neprijde mi ze by bylo mozne aby to ve vysledku vyslo jednoduseji.

  • 20. 1. 2011 21:42

    _dworkin (neregistrovaný)

    Podle me staci taky jen scitani. Jen pokud ve vysledku pretece nejvyssi bit tak se musi pricist k nejnizsimu, takze to bude pomalejsi. Pri scitani kladnych se to nestane, u zapornych vzdy, takze se muze pricist rovnou a kdyz se potka kladne se zapornym, tak to pretece kdyz vysledek ma byt kladny. Ale jednodusi je pricitat k vysledku vzdy, i nulu. Zvlastnost to ma ze se kladna nula temer nevyskytuje. Ve vypoctech vznika jen zaporna krome scitani dvou kladnych nul.

    (+3) 001
    (+2) 010
    (+1) 001
    (+0) 000
    (-0) 111
    (-1) 110
    (-2) 101
    (-3) 100
    
    (+2) 010
    (-1) 110
    -------
      1<-000
         001
    
    (-0) 111
    (-0) 111
    -------
      1<-110
         111
    
    (-1) 110
    (-2) 101
    -------
      1<-011
         100
    
    (-3) 100
    ( 1) 001
    -------
         101
  • 21. 1. 2011 11:17

    Pavel Tišnovský
    Zlatý podporovatel

    Pri pocitani v jednickovem doplnku je nutne na konci aritmeticke operace navic provest pricteni carry k vysledku, coz je teoreticky zpomaleni celeho vypoctu.

    Bohuzel jsem nikde nenasel presny popis ALU, ale vzhledem k celkovemu malemu poctu elektronek (pocitejme cca 2 triody v jedne elektronce) a 24bitovym slovum bych predpokladal, ze se pouzivala seriova scitacka namisto mnohem slozitejsi scitacky se zrychlenym prenosem, kde pocet logickych clenu roste pomerne rychle se sirkou slova.

    Takze ano pri souctu 24 nebo 48 bitovych slov se navic v poslednim kroku muselo provest pricteni carry ke korekci.

    (btw byl akumulator ukladan v negovane podobe, takze odecitani bylo jednodussi nez scitani a navic se tim snizila pravdepodobnost vzniku "zaporne" nuly ve vysledku).