Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
CompactRISC
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Family of instruction set architectures}} '''CompactRISC''' is a family of [[instruction set architecture]]s from [[National Semiconductor]]. The architectures are designed according to [[reduced instruction set computing]] principles, and are mainly used in [[microcontroller]]s.<ref name=cr16-utah-beyond>{{cite web|url=http://www.eng.utah.edu/~cs3710/slides/cr16x2.pdf|title=National Semiconductor CR16, Compact RISC Processor, Baseline ISA and Beyond|last=Brunvand|first=Erik |work=CS/EE 3710|publisher=University of Utah |accessdate=3 December 2016}}</ref> The subarchitectures of this family are the 16-bit '''CR16''' and '''CR16C''' and the 32-bit '''CRX'''.<ref>{{cite book|last=von Hagen|first=William |title=The Definitive Guide to GCC|publisher=Apress|date=2011|page=422|isbn=9781430202196|url=https://books.google.com/books?id=wQ6r3UTivJgC&q=national+cr16+crx&pg=PA422}}</ref> == Architectures== Features of CR16 family: compact implementations (less than 1 mm<sup>2</sup> with [[250 nanometer|250 nm]]), addressing of 2 MB (2{{sup|21}}), frequencies up to 66 MHz, hardware multiplier for 16-bit integers.<ref name=cr16-utah-beyond/> It has complex instructions such as bit manipulation, saving/restoring and push/pop of several registers with single command.<ref name=cr16-utah-beyond/> 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.<ref name=cr16-utah-beyond/> 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).<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> CR16 implements traps and interrupts. Implementations of CR16 has three-stage pipeline: fetch, decode, execute.<ref name=cr16-utah-beyond/> == CR16 products== CR16 was used in several National Semiconductor microcontrollers, and since 2001 integrated microcontrollers were available having built-in flash memory.<ref>{{cite news|url=http://www.eetimes.com/document.asp?doc_id=1128340|title=National Semi's 16-bit MCU integrates flash, analog|last= Graham|first=Jeanne |publisher=EETimes|accessdate=3 December 2016|date=2001-02-22}}</ref><ref>{{cite news|url=http://www.eetimes.com/document.asp?doc_id=1290094|title=National's 16-bit RISC MCU touts high-endurance flash|date=2001-03-13|publisher=EETimes|accessdate=3 December 2016}}</ref> Since 2007 CR16-based IP was available to licensing<ref>{{cite news|url=http://www.eetimes.com/document.asp?doc_id=1240853|title=NatSemi taps IPextreme for embedded IP resale|last=Hammerschmidt|first=Christoph |date=2007-02-21|publisher=EETimes|accessdate=3 December 2016}}</ref> ==References== {{Reflist}} ==External links== *[http://microcontroller.com/National_Semiconductor_Embedded_Microcontrollers.htm National Semiconductor Embedded Microcontrollers] (CR16 and [[COP8]]) *[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 *[https://gcc.gnu.org/onlinedocs/gcc/CR16-Options.html GCC CR16 port] {{Microcontrollers}} [[Category:Microcontrollers]] {{microcompu-stub}}
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Asbox
(
edit
)
Template:Cite book
(
edit
)
Template:Cite news
(
edit
)
Template:Cite web
(
edit
)
Template:Microcompu-stub
(
edit
)
Template:Microcontrollers
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Sup
(
edit
)