OpenRISC 1200
   HOME

TheInfoList



OR:

The OpenRISC 1200 (OR1200) is an implementation of the open source
OpenRISC OpenRISC is a project to develop a series of open-source hardware based central processing units (CPUs) on established reduced instruction set computer (RISC) principles. It includes an instruction set architecture (ISA) using an open-source lic ...
1000 RISC architectur

. A soft microprocessor, synthesizable CPU core, it was for many years maintained by developers at OpenCores.org, although, since 2015, that activity has now been taken over by the
Free and Open Source Silicon Foundation The Free and Open Source Silicon Foundation (FOSSi Foundation) is a non-profit foundation with the mission to promote and assist free and open digital hardware designs and their related ecosystems. It was set up by the core OpenRISC development t ...
at th
librecores.org
website. The Verilog RTL description is released under the
GNU Lesser General Public License The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
(LGPL).


Architecture

The
IP core In electronic design, a semiconductor intellectual property core (SIP core), IP core, or IP block is a reusable unit of logic, cell, or integrated circuit layout design that is the intellectual property of one party. IP cores can be licensed to ...
of the OR1200 is implemented in the
Verilog Verilog, standardized as IEEE 1364, is a hardware description language (HDL) used to model electronic systems. It is most commonly used in the design and verification of digital circuits at the register-transfer level of abstraction. It is als ...
HDL. As an open source core, the design is fully public and may be downloaded and modified by any individual. The official implementation is maintained by developers at OpenCores.org. The implementation specifies a power management unit, debug unit, tick timer, programmable interrupt controller (PIC), central processing unit (CPU), and memory management hardware. Peripheral systems and a memory subsystem may be added using the processor's implementation of a standardized 32-bit
Wishbone Wishbone commonly refers to: * Furcula, a fork-shaped bone in birds and some dinosaurs Wishbone may also refer to: * Wish-Bone, an American salad dressing and condiment company * Wishbone formation, a type of offense in American football * Wish ...
bus interface. The OR1200 is intended to have a performance comparable to an
ARM10 This is a list of central processing units based on the ARM family of instruction sets designed by ARM Ltd. and third parties, sorted by version of the ARM instruction set, release and name. In 2005, ARM provided a summary of the numerous vendor ...
processor architecture.


CPU/DSP

The OR1200 CPU is an implementation of the 32-bit ORBIS32 instruction set architecture (ISA) and (optionally) ORFP32X ISA implementing
IEEE-754 The IEEE Standard for Floating-Point Arithmetic (IEEE 754) is a technical standard for floating-point arithmetic established in 1985 by the Institute of Electrical and Electronics Engineers (IEEE). The standard addressed many problems found in ...
compliant single precision floating point support. The ISA has five instruction formats and supports two addressing modes: register indirect with displacement, and program-counter relative. The implementation has a single-issue 5-stage pipeline and is capable of single cycle execution on most instructions. The CPU also contains a MAC unit in order to better support digital signal processing (DSP) applications.


Memory management

The OR1200 design uses a Harvard memory architecture and therefore has separate memory management units (MMUs) for data and instruction memories. These MMUs each consist of a hash-based 1-way direct-mapped
translation lookaside buffer A translation lookaside buffer (TLB) is a memory cache that stores the recent translations of virtual memory to physical memory. It is used to reduce the time taken to access a user memory location. It can be called an address-translation cache. ...
(TLB) with page size of 8KiB and a default size of 64 entries. The TLBs are individually scalable from 16 to 256 entries. There is also a one-way direct-mapped
cache Cache, caching, or caché may refer to: Places United States * Cache, Idaho, an unincorporated community * Cache, Illinois, an unincorporated community * Cache, Oklahoma, a city in Comanche County * Cache, Utah, Cache County, Utah * Cache County ...
each for both the instruction memory and for the data memory. Each cache has a default size of 8KiB, but both are individually scalable between 1 and 64KiB. The MMU includes support for virtual memory.


Performance

The core achieves 1.34 CoreMarks per MHz at 50 MHz on Xilinx FPGA technology. Under the worst case, the clock frequency for the OR1200 is 250 MHz at a 0.18 μm 6LM fabrication process. Using the
Dhrystone Dhrystone is a synthetic computing benchmark program developed in 1984 by Reinhold P. Weicker intended to be representative of system (integer) programming. The Dhrystone grew to become representative of general processor ( CPU) performance. T ...
benchmark, a 250 MHz OR1200 processor performs 250 Dhrystone millions of instructions per second (DMIPS) in the worst case. Estimated power usage of a 250 MHz processor at a 0.18 μm process is less than 1 W at full throttle and less than 5 mW at half throttle.


Applications

Generally, the OR1200 is intended to be used in a variety of embedded applications, including telecommunications, portable media, home entertainment, and automotive applications. The
GNU toolchain The GNU toolchain is a broad collection of programming tools produced by the GNU Project. These tools form a toolchain (a suite of tools used in a serial manner) used for developing software applications and operating systems. The GNU toolchain pl ...
(including GCC) has also been successfully ported to the architecture, although it is not bug-free. There is a port of the Linux kernel for OR1K which runs on the OR1200. Recent ports of the embedded C libraries
newlib Newlib is a C standard library implementation intended for use on embedded systems. It is a conglomeration of several library parts, all under free software licenses that make them easily usable on embedded products. It was created by Cygnus S ...
and
uClibc __NOTOC__ In computing, uClibc (sometimes written µClibc) is a small C standard library intended for Linux kernel-based operating systems for embedded systems and mobile devices. uClibc was written to support μClinux, a version of Linux no ...
are also available for the platform.


Implementations

The OR1200 has been successfully implemented using FPGA and ASIC technologies.


History

The first public record of the OpenRISC 1000 architecture is in 2000.


References

* ORSoC.s
"OpenRISC 1200 development board"
March 2009 * Cragie, Robert

''Asisi''. March 19, 2008.


External links


OR1200 page at OpenCores.org

OR1200 specification at OpenCores.org (warning: URL serves context-type text/plain for PDF data)
{{Programmable Logic Soft microprocessors Open microprocessors