In computing, there are many different types of memory. ROM and RAM, DRAM and SRAM, and NAND and NOR flash. Each of these types of memory has its place. Many of these find their place – where you might expect them – in a computer. Some of these, however, are outdated technology, essentially consigned to the history books. ROM, for example, is almost completely replaced with the much cheaper and overwritable flash memory. Typically, that flash will be NOR flash, but it may also be a NAND flash.
Another memory term that is consigned to the history books is “conventional memory.”
A Short History Lesson on the PC
Computers have been around for a fairly long time. For years though, they were large, expensive, and not particularly powerful. This limited their use cases to organizations willing to pay for them. Available software was also an issue. You couldn’t just download a new browser, office software, or pictures of cats. First, the internet hadn’t been created yet; there was nowhere to download. There were also no browsers because there was nothing to browse. There were also no cat pictures, as most early computers were text-based only.
Early computers tended to be built for specific purposes. In many cases, they could only perform the one task they had been designed to do. This limited their use cases, especially given the price tags.
The IBM PC was the computer that changed many things. It didn’t invent the internet, browsers, or cat pictures. Instead, it was a general-purpose computer. Even better, it was designed for the masses. While not cheap, it wasn’t unaffordable either. Thankfully, this caught on. The PC sold well. So well that the term PC is still used, even if it is dropping out of favor. Other computing companies released scores of PC-compatible hardware, software, and outright clones.
This popularity helped set the tone for the computer market. Not everything was rosy, though. Limitations in the PC also got baked into succeeding computers. Those issues have generally been dealt with, but some are less thorough than others.
The Intel 8086
The CPU that made the PC possible was the Intel 8086. It was groundbreaking as the first general-purpose CPU. Unfortunately, its limitations imposed compatibility restrictions for long after it was irrelevant.
One of the limitations of the 8086 was that it could only address a total of 1MB of memory. Now that isn’t just 1MB of RAM. That’s the entire space to map anything to memory. That includes the ROM for the BIOS and operating system, graphics, and other memory-mapped peripherals. Of this, the first 640KB of the 1MB of memory space was allocated for RAM usage. This was called the conventional memory area. The remaining 384MB of memory was referred to as the upper memory area.
Tip: In memory contexts, 1MB should be more accurately represented as 1MiB. In the SI unit and prefix system, the prefix M means 1000K, 1000 units. This presumes a base ten system, though and computers use bits that are base 2. The standard byte is 8 bits, 1KB is 1024 bytes, and 1MB is 1024KB.
This leads to confusion with the SI prefixes through 1000, not 1024, which may be assumed. As such, memory capacities – should be – but aren’t always listed in KiB, MiB, GiB, and so on. This effect also influences why hard drives appear much smaller than advertised. A 1TB SSD has just 1000GB rather than 1024GiB. That comes out to 0.9095TiB, a 10% capacity difference.
There were a number of workarounds and changes over time that enabled support for larger memory capacities. Modern operating systems no longer allow the software to access actual memory addresses, instead using virtual memory addresses that the computer then maps automatically. This hides the actual physical structure of the memory from the software. Part of what it hides is that the memory segmentation caused by this memory limit led to segments being defined. Modern computers no longer need to do this but still represent the details, starting from 0, giving them full access to the entire address space.
Conventional memory refers to the first 680KiB of the 1MiB of addressable memory space the original IBM PC had. This was a hardware limitation imposed by the limited address space of the Intel 8086 CPU used by the PC. Conventional memory was used as system RAM. The rest of the memory space was allocated to ROM for the BIOS, operating system, and other memory-mapped peripherals, such as graphics.
The first 640KiB of memory is no longer treated as unique. The term is now thoroughly obsolete, with 64-bit computers being able to theoretically address 16EiB of memory, though they are currently limited to “only” 256TiB. Additionally, physical memory addresses are no longer accessible. Instead, virtual memory addresses are used.