Fine-grained memory protection

Fine-grained CHERI memory protection blog

In previous blog posts we have considered the damage, costs and underlying causes of memory unsafety. Having looked at conventional approaches to protecting processor systems we concluded that standard approaches such as MPUs, MMUs and privilege modes while having some value are limited in effectiveness. We also noted that while languages like C/C++ give tremendous […]

Addressing memory safety with software

Blog featured image - Addressing memory safety with software

In the previous post we looked at the underlying causes of memory unsafety which was using unsafe programming languages. In particular, C and C++ have been widely used for performance but at the same time carry risks of errors that cause unsafe memory accesses. Let’s now look at software approaches to mitigating memory unsafety. Software […]

Causes of memory unsafety

Blog featured image - Causes of memory unsafety

In our first blog in this series, we looked at the high costs associated with memory safety failures. In the second post we saw that commonly used methods to ensure processor integrity were not adequate. This means that memory unsafety is a characteristic of many of today’s systems. In this blog we look at some […]

Buffer bound vulnerabilities and their dangers

Buffer bound vulnerabilities blog security

Many common vulnerabilities are related to software failing to respect the bounds of buffers. There are two main classes of buffer bound vulnerability – buffer overflow and buffer over-read. Both of these can lead to deviations in the execution flow or the malicious extraction of important data or code injection. What are buffer overflows? Buffers […]

Are common memory protection mechanisms adequate?

Security blog - Are common memory protection mechanisms adequate

In the previous blog post we looked at the ruinous costs of allowing unsafe memory access. However, there are generally existing protection mechanisms that are designed into processors. Can these be relied upon to give adequate protection? We will look at some common mechanisms and consider how effective they are at dealing with common memory-related […]

Unsafe memory access is ruinous

Unsafe memory access is ruinous blog featured image

Most organizations are aware of cybercrime attempts such as phishing, installing malware from dodgy websites or ransomware attacks and undertake countermeasures. However, relatively little attention has been given to memory safety vulnerabilities such as buffer overflows or over-reads. For decades industry has created billions of lines of C & C++ code but addressing the resulting memory […]

Increasing design skills for custom compute

Blog image Codasip Design skills for custom compute

As discussed in an another blog post by Mike Eftimakis, there are limitations to traditional design methods that use “off-the-shelf” processor cores. Traditionally, software engineers try to fit their code to the constraints of the chosen processor hardware. The alternative is to co-optimize the hardware and software together to create a custom compute solution. You […]

Creating specialized architectures with design automation

With semiconductor scaling slowing down if not failing, SoC designers are challenged to find ways of meeting the demand for greater computational performance. In their 2018 Turing lecture, Hennessey & Patterson pointed out that new methods are needed to work around failing scaling and predicted ‘A Golden Age for Computer Architecture’. A key approach in addressing this challenge […]

Embedded World 2022 – the RISC-V genie is out of the bottle

Codasip team at our booth at Embedded World 2022

The last Embedded World was back in February of 2020, but the event was hit hard by Covid-19 with many exhibitors and visitors deciding to pull out last minute. No-one knew then that it would take almost two and half years before the embedded industry would regroup again in Nuremberg. Even now, in June 2022, […]