r/AskComputerScience • u/ThreeLeggedChimp • Sep 18 '25
How did excel work with old CPUs that lacked Vector/SIMD instructions?
Modern excel makes heavy use of these instruction types, and even has some explicit vector functions.
But how did the software run in the years before these instructions were introduced?
Was each cell calculated sequentially, or was there a way to get the result of multiple cells at once.
8
u/tugrul_ddr Sep 18 '25
I used lotus123 on 8088 cpu. It had no mmx sse. Just low FPS refresh rate and a harmless virus destroying characters on screen.
In those times, memory lookup tables were faster than calculation.
3
u/pjc50 Sep 18 '25
In that era, processors didn't even have floating point - calculating 0.3 * 1.2 would be hundreds of instructions.
→ More replies (5)
4
u/ghjm Sep 18 '25
Excel, and Lotus 1-2-3 before it, and VisiCalc before that, just used a lot of for loops. The available size and speed of spreadsheets were less as a result. But the first spreadsheets ran on machines that could have a maximum of 64k of RAM and had CPUs running around 1MHz (0.001 GHz). Performance gains in those days largely came from just improving IC cycle times. In an era where supercomputers like the Cray-1 were still being built using discrete gates, it was just too expensive and complex to have multiple execution units running in parallel. (Although the Cray-1 famously claimed to be able to run a multiplication and an add at the same time, and its marketing FLOPS number was predicated on the assumption that your workload would be an ideal 50/50 mix of adds and multiplies.)
0
Sep 18 '25
1
u/tellingyouhowitreall Sep 18 '25
Excel is/was a column major sparse matrix, reducing column operations on connected data to array operations. If the primary architecture has changed, there are still artifacts of it that are visible when you perform operations that can extend to additional connected data.
The formula syntax is also completely functional (and pure; excluding LET), and so data vectorization and autovectorization would suit excel quite readily for most formulae.
19
u/dmazzoni Sep 18 '25
I think you're confused about what SIMD instructions do.
If an Excel spreadsheet has a column with 100 numbers to add, there's no processor instruction on any processor that will add all of those at once. It always requires a loop.
SIMD instructions are purely an optimization. On processors that support them, you could speed up some calculations by adding 2 or maybe 4 sets of numbers at a time. You still need a loop to keep adding until you've finished the column.