From WikiChip
Difference between revisions of "general instrument/sba"
< general instrument

 
(One intermediate revision by one other user not shown)
Line 10: Line 10:
 
| production end    =  
 
| production end    =  
 
| arch              = 1-bit
 
| arch              = 1-bit
| isa              = <!-- instruction set architecture                              -->
+
| isa              = SBA
| word              = 1-bit
+
| word              = 1 bit
 
| proc              = <!-- process, e.g. "8 μm"                                      -->
 
| proc              = <!-- process, e.g. "8 μm"                                      -->
 
| tech              = nMOS
 
| tech              = nMOS
Line 33: Line 33:
  
 
== Architecture ==
 
== Architecture ==
The SBA family had 8-bit instructions of two types: with immediate and without [[immediate value]].  
+
The SBA family had a large number (over 30) of I/O ports that could all be individually accessed programatically. Additionally, it had a relatively complex scheme of data storage. In total there were 120 words (1-bit each). This was broken down into 4 pages of 30 addresses each. The program had to choose which page it was working with currently and once that was done, any address selection was done on that page.
  
* With immediate: The 5 [[MSB]]s are reserved for the address, but only up to the 30th address. The opcode is stored in the 3 LSBs.
+
{{expand section}}
: <span style="border: 1px solid black; padding: 3px;">{{bin|00000}}-{{bin|11101}}</span><span style="border: 1px solid black;  padding: 3px;">{{bin|000}}-{{bin|111}}</span>
+
=== ISA ===
* Without immediate: Addresses 30 and 31 are reserved for extended instructions of 8 bits.
+
{{main|general_instrument/sba/isa|l1=SBA ISA}}
: <span style="border: 1px solid black; padding: 3px;">{{bin|11110000}}-{{bin|11111111}}</span>
+
The SBA family had 8-bit instructions consisting of instructions with immediate and without [[immediate value]]s. In total there were 24 instructions used for arithmetic, I/O, and page switching.
 
 
This scheme allows for 30 addresses and 24 instructions (8 operating on [[immediate value]]s and 16 without immediates).
 
 
 
=== Stack ===
 
{{empty section}}
 
 
 
=== Instruction Set ===
 
{{isa
 
| title    = SBA ISA
 
| listing  =
 
{{inst|mn=ANDIN  |op={{bin|AAAAA000}} |act={{l|and|In[AAAAA]|Stack[Top]}}}}
 
{{inst|mn=NANDIN  |op={{bin|AAAAA001}} |act={{l|and|{{l|onot|In[AAAAA]}}|Stack[Top]}}}}
 
{{inst|mn=ANDSS  |op={{bin|AAAAA010}} |act={{l|and|Store[AAAAA]|Stack[Top]}}}}
 
{{inst|mn=NANDSS  |op={{bin|AAAAA011}} |act={{l|and|{{l|onot|Store[AAAAA]}}|Stack[Top]}}}}
 
{{inst|mn=ASP1    |op={{bin|AAAAA100}} |act={{l|and|Store[AAAAA]|Stack[Top]}} ; PUSH(1)}}
 
{{inst|mn=NASP1  |op={{bin|AAAAA101}} |act={{l|and|{{l|onot|Store[AAAAA]}}|Stack[Top]}} ; PUSH(1)}}
 
{{inst|mn=STORE  |op={{bin|AAAAA110}} |act=Store[AAAAA] = Stack[Top] ; Stack[Top] = 1}}
 
{{inst|mn=OUTPUT  |op={{bin|AAAAA111}} |act=Out[AAAAA] = Stack[Top] ; Stack[Top] = 1}}
 
{{inst|mn=RESTART |op={{bin|11110000}} |act=restarts evaluation of program}}
 
{{inst|mn=INVERT  |op={{bin|11110001}} |act=Stack[Top] = {{l|onot|Stack[Top]}}}}
 
{{inst|mn=PAGE    |op={{bin|11110010}} |act=Change page}}
 
{{inst|mn=HOME    |op={{bin|11110011}} |act=Back to home page}}
 
{{inst|mn=PUSH0  |op={{bin|11110100}} |act=PUSH(0)}}
 
{{inst|mn=PUSH1  |op={{bin|11110101}} |act=PUSH(1)}}
 
{{inst|mn=PUSHC  |op={{bin|11110110}} |act=PUSH(Stack[Top])}}
 
{{inst|mn=POP    |op={{bin|11110111}} |act=POP()}}
 
{{inst|mn=AND    |op={{bin|11111000}} |act=Stack[Top] = {{l|and|Stack[Top]|Stack[Top-1]}}}}
 
{{inst|mn=OR      |op={{bin|11111001}} |act=Stack[Top] = {{l|or|Stack[Top]|Stack[Top-1]}}}}
 
{{inst|mn=EXOR    |op={{bin|11111010}} |act=Stack[Top] = {{l|xor|Stack[Top]|Stack[Top-1]}}}}
 
{{inst|mn=COMP    |op={{bin|11111011}} |act=}}
 
{{inst|mn=PAND    |op={{bin|11111100}} |act={{l|and|PUSH(Stack[Top]|Stack[Top-1])}} ; Stack[Top] = 1}}
 
{{inst|mn=POR    |op={{bin|11111101}} |act={{l|or|PUSH(Stack[Top]|Stack[Top-1])}} ; Stack[Top] = 1}}
 
{{inst|mn=PEXOR  |op={{bin|11111110}} |act={{l|xor|PUSH(Stack[Top]|Stack[Top-1])}} ; Stack[Top] = 1}}
 
{{inst|mn=PCOMP  |op={{bin|11111111}} |act=}}
 
}}
 
  
  
 
{{stub}}
 
{{stub}}

Latest revision as of 00:33, 19 May 2016

GIM SBA
no photo (ic).svg
Developer General Instrument
Manufacturer General Instrument
Type microcontrollers
Production November, 1977
Architecture 1-bit
ISA SBA
Word size 1 bit
0.125 octets
0.25 nibbles
Technology nMOS
Clock 10 kHz-800 kHz
Package DIP40

The GI SBA (Sequential Boolean Analyzer) was a family of 1-bit microcontrollers developed by General Instrument's Microelectronics division. These microcontrollers served as cheap programmable logic controllers, replacing old relay system.

Members[edit]

Part RAM ROM I/O Ports Notes
SBA 120x1 bits 1024x8 bits 31
SBA-1 120x1 bits 31 external storage
SBA-2 120x1 bits 2048x8 bits 31  ?ever released?

Architecture[edit]

The SBA family had a large number (over 30) of I/O ports that could all be individually accessed programatically. Additionally, it had a relatively complex scheme of data storage. In total there were 120 words (1-bit each). This was broken down into 4 pages of 30 addresses each. The program had to choose which page it was working with currently and once that was done, any address selection was done on that page.

New text document.svg This section requires expansion; you can help adding the missing info.

ISA[edit]

Main article: SBA ISA

The SBA family had 8-bit instructions consisting of instructions with immediate and without immediate values. In total there were 24 instructions used for arithmetic, I/O, and page switching.


Text document with shapes.svg This article is still a stub and needs your attention. You can help improve this article by editing this page and adding the missing information.
designerGeneral Instrument +
full page namegeneral instrument/sba +
instance ofmicrocontroller family +
instruction set architectureSBA +
main designerGeneral Instrument +
manufacturerGeneral Instrument +
nameGIM SBA +
packageDIP40 +
technologynMOS +
word size1 bit (0.125 octets, 0.25 nibbles) +