The OpenRISC 1200 (OR1200) is an implementation of the
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
OpenRISC 1000
RISC
In computer engineering, a reduced instruction set computer (RISC) is a computer designed to simplify the individual instructions given to the computer to accomplish tasks. Compared to the instructions given to a complex instruction set comput ...
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.orgwebsite. The Verilog RTL description is released under the
GNU Lesser General Public License (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 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 architecture family, 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 summa ...
processor architecture.
CPU/DSP
The OR1200 CPU is an implementation of the 32-bit ORBIS32
instruction set architecture
In computer science, an instruction set architecture (ISA), also called computer architecture, is an abstract model of a computer. A device that executes instructions described by that ISA, such as a central processing unit (CPU), is called an ' ...
(ISA) and (optionally) ORFP32X ISA implementing
IEEE-754 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
Digital signal processing (DSP) is the use of digital processing, such as by computers or more specialized digital signal processors, to perform a wide variety of signal processing operations. The digital signals processed in this manner are ...
(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 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
The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU ope ...
for OR1K which runs on the OR1200. Recent ports of the embedded C libraries
newlib 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 not ...
are also available for the platform.
Implementations
The OR1200 has been successfully implemented using
FPGA
A field-programmable gate array (FPGA) is an integrated circuit designed to be configured by a customer or a designer after manufacturinghence the term '' field-programmable''. The FPGA configuration is generally specified using a hardware de ...
and
ASIC
An application-specific integrated circuit (ASIC ) is an integrated circuit (IC) chip customized for a particular use, rather than intended for general-purpose use, such as a chip designed to run in a digital voice recorder or a high-efficien ...
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