Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

// request.cf · coarse context

A page that knows where it met you.

Only coarse request metadata is shown. This demo does not display or persist visitor IP addresses.

Country
US
Cloudflare location
CMH
Connection
HTTP/2
Language
Not provided

Ray ID: a40fa583aaa5a0ea

Jump to content

gem5

From Wikipedia, the free encyclopedia
gem5
DeveloperCommunity contributors
ReleaseAugust 2011; 15 years ago (2011-08)
Stable release
v25.1.0.1 / April 21, 2026; 5 months ago (2026-04-21)
Written inC++, Python
Operating systemLinux, macOS
Platformx86-64, ARM64
LicenseBSD 3-Clause
Websitewww.gem5.org
Repositorygithub.com/gem5/gem5

The gem5 simulator is an open-source discrete-event computer architecture simulator used for computer-system and microarchitectural research.[1][2] It is widely used in academic and industrial computer-architecture research.[2] gem5 models components of computer systems, including processors and memory hierarchies, allowing researchers to evaluate hardware configurations and architectural designs in software.[1][2]

gem5 supports both full-system simulation, in which a complete operating system runs on the simulated hardware, and syscall-emulation mode, in which user-space programs run without a simulated operating-system kernel.[1] It supports several instruction set architectures (ISAs), including x86, Arm, RISC-V, MIPS, SPARC, and Power, as well as a range of processor and memory-system models.[1][2] Simulated systems are configured primarily through Python, while most of the simulator itself is implemented in C++.[1]

History

[edit]

gem5 was created through the merger of the m5 processor and system simulator and the GEMS memory-system simulator. The combined simulator was released in 2011.[3] m5 contributed the simulation framework, processor models, instruction-set support, and device models, while GEMS contributed the Ruby memory-system model, including cache-coherence and interconnection-network modeling.[3]

Design and capabilities

[edit]

gem5 is an event-driven simulator in which simulated components schedule events representing changes in the modeled system.[2] It provides processor models at different levels of detail, including simple functional and timing models, an in-order pipelined model, and an out-of-order processor model.[2]

The simulator provides two principal approaches to modeling memory systems. Its classic memory system allows caches and interconnects to be assembled into configurable memory hierarchies, while the Ruby memory system provides more detailed modeling of cache-coherence protocols and interconnection networks.[3][1]

gem5 can operate in full-system mode, where it models sufficient hardware to boot an operating system, or in syscall-emulation mode, where operating-system services required by an application are provided by the simulator.[1] Its modular design allows processor, memory, interconnect, and other system components to be configured or replaced for architectural experiments.[1]

See also

[edit]

References

[edit]
  1. 1 2 3 4 5 6 7 8 Lowe-Power J, Ahmad AM, Akram A, Alian M, Amslinger R, Andreozzi M, Armejach A, Asmussen N, Beckmann B, Bharadwaj S, Black G, Bloom G, Bruce BR, et al. (2020). "The gem5 Simulator: Version 20.0+". arXiv:2007.03152 [cs.AR].
  2. 1 2 3 4 5 6 Akram, Ayaz; Sawalha, Lina (2019). "A Survey of Computer Architecture Simulation Techniques and Tools". IEEE Access. 7: 78120–78145. doi:10.1109/ACCESS.2019.2917698.
  3. 1 2 3 Binkert, Nathan; Beckmann, Bradford; Black, Gabriel; Reinhardt, Steven K.; Saidi, Ali; Basu, Arkaprava; Hestness, Joel; Hower, Derek; Krishna, Tushar; Sardashti, Somayeh; Sen, Rathijit; Sewell, Korey; Shoaib, Muhammad; Vaish, Nilay; Hill, Mark D.; Wood, David A. (2011-08-31). "The gem5 simulator". ACM SIGARCH Computer Architecture News. 39 (2): 1–7. doi:10.1145/2024716.2024718.
[edit]