CompactRISC: Difference between revisions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
imported>SimLibrarian
mNo edit summary
 
imported>Citation bot
Altered url. URLs might have been anonymized. Add: archive-date, archive-url. | Use this bot. Report bugs. | Suggested by Josve05a | Linked from User:Josve05a/cite/wayback | #UCB_webform_linked 69/1451
 
Line 18: Line 18:
* Load/store relative with medium 18-bit displacement (32-bit encoding, 2-bit opcode).<ref name=cr16-utah-beyond/>
* Load/store relative with medium 18-bit displacement (32-bit encoding, 2-bit opcode).<ref name=cr16-utah-beyond/>


CR16C comes with a different opcode encoding format, has 23–32-bit-wide address registers and provides two 32-bit general purpose registers.<ref>{{cite web|url=https://dump.bitcheese.net/files/zujukix/Prog_16C.pdf|title=CR16C Programmer's Reference Manual}}</ref>
CR16C comes with a different opcode encoding format, has 23–32-bit-wide address registers and provides two 32-bit general purpose registers.<ref>{{cite web |title=CR16C Programmer's Reference Manual |url=http://www.national.com/appinfo/compactrisc/files/prog_16c.pdf |archive-url=https://web.archive.org/web/20041029173013/http://www.national.com/appinfo/compactrisc/files/prog_16c.pdf |archive-date=29 October 2004 }}</ref>


CR16 implements traps and interrupts. Implementations of CR16 has three-stage pipeline: fetch, decode, execute.<ref name=cr16-utah-beyond/>
CR16 implements traps and interrupts. Implementations of CR16 has three-stage pipeline: fetch, decode, execute.<ref name=cr16-utah-beyond/>
Line 32: Line 32:
*[https://web.archive.org/web/20060618230034/http://www.national.com/appinfo/compactrisc/ CompactRISC Core Architecture] page on  National Semiconductor website (archived copy from 2007)
*[https://web.archive.org/web/20060618230034/http://www.national.com/appinfo/compactrisc/ CompactRISC Core Architecture] page on  National Semiconductor website (archived copy from 2007)
*[http://www.eng.utah.edu/~cs3710/handouts/cr16.pdf CR16B Programmer’s Reference Manual],  National Semiconductor, 1997
*[http://www.eng.utah.edu/~cs3710/handouts/cr16.pdf CR16B Programmer’s Reference Manual],  National Semiconductor, 1997
*[https://gcc.gnu.org/onlinedocs/gcc/CR16-Options.html GCC CR16 port]
*[https://gcc.gnu.org/onlinedocs/gcc-12.2.0/gcc/CR16-Options.html GCC CR16 port]


{{Microcontrollers}}
{{Microcontrollers}}

Latest revision as of 19:04, 26 September 2025

Template:Short description CompactRISC is a family of instruction set architectures from National Semiconductor. The architectures are designed according to reduced instruction set computing principles, and are mainly used in microcontrollers.[1] The subarchitectures of this family are the 16-bit CR16 and CR16C and the 32-bit CRX.[2]

Architectures

Features of CR16 family: compact implementations (less than 1 mm2 with 250 nm), addressing of 2 MB (221), frequencies up to 66 MHz, hardware multiplier for 16-bit integers.[1]

It has complex instructions such as bit manipulation, saving/restoring and push/pop of several registers with single command.[1]

CR16 has 16 general purpose registers of 16 bits, and address registers of 21 bits wide. There are 8 special registers: program counter, interrupt stack pointer ISP, interrupt vector address register INTBASE, status register PSR, configuration register and 3 debug registers. Status register implements flags: C, T, L, F, Z, N, E, P, I.[1]

Instructions are encoded in two-address form in several formats, usually they have 16-bit encoding, but there are two formats for medium immediate instructions with length of 32-bit. Typical opcode length is 4 bits (bits 9–12 of most encoding types. Basic encoding formats are:

  • Register-to-register,
  • Short 5-bit immediate value to register,
  • Medium immediate of 16-bit value to register (32-bit encoding),
  • Load/store relative with short 5-bit displacement (2-bit opcode),
  • Load/store relative with medium 18-bit displacement (32-bit encoding, 2-bit opcode).[1]

CR16C comes with a different opcode encoding format, has 23–32-bit-wide address registers and provides two 32-bit general purpose registers.[3]

CR16 implements traps and interrupts. Implementations of CR16 has three-stage pipeline: fetch, decode, execute.[1]

CR16 products

CR16 was used in several National Semiconductor microcontrollers, and since 2001 integrated microcontrollers were available having built-in flash memory.[4][5] Since 2007 CR16-based IP was available to licensing[6]

References

<templatestyles src="Reflist/styles.css" />

  1. a b c d e f Script error: No such module "citation/CS1".
  2. Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".
  4. Script error: No such module "citation/CS1".
  5. Script error: No such module "citation/CS1".
  6. Script error: No such module "citation/CS1".

Script error: No such module "Check for unknown parameters".

External links

Script error: No such module "Navbox".


Template:Asbox