arch-arm, dev-arm: Consistently use ISO prefixes
authorAndreas Sandberg <andreas.sandberg@arm.com>
Thu, 21 Jan 2021 09:47:16 +0000 (09:47 +0000)
committerAndreas Sandberg <andreas.sandberg@arm.com>
Sun, 24 Jan 2021 18:44:21 +0000 (18:44 +0000)
commita6be3fd5030eb977e8748015a9185f30e50c162a
tree117ec8d61ede6350f4f65adf2f90f4618515cd31
parent61dbd95e1b032f395620299bd57532d932e97de2
arch-arm, dev-arm: Consistently use ISO prefixes

We currently use the traditional SI-like prefixes to represent
binary multipliers in some contexts. This is ambiguous in many cases
since they overload the meaning of the SI prefix.

Here are some examples of commonly used in the industry:
  * Storage vendors define 1 MB as 10**6 bytes
  * Memory vendors define 1 MB as 2**20 bytes
  * Network equipment treats 1Mbit/s as 10**6 bits/s
  * Memory vendors define 1Mbit as 2**20 bits

In practice, this means that a FLASH chip on a storage bus uses
decimal prefixes, but that same flash chip on a memory bus uses binary
prefixes. It would also be reasonable to assume that the contents of a
1Mbit FLASH chip would take 0.1s to transfer over a 10Mbit Ethernet
link. That's however not the case due to different meanings of the
prefix.

The quantity 2MX is treated differently by gem5 depending on the unit
X:

  * Physical quantities (s, Hz, V, A, J, K, C, F) use decimal prefixes.
  * Interconnect and NoC bandwidths (B/s) use binary prefixes.
  * Network bandwidths (bps) use decimal prefixes.
  * Memory sizes and storage sizes (B) use binary prefixes.

Mitigate this ambiguity by consistently using the ISO/IEC/SI prefixes
for binary multipliers for parameters and comments where appropriate.

Change-Id: I9b47194d26d71c8ebedda6c31a5bac54b600d3bf
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/39575
Reviewed-by: Richard Cooper <richard.cooper@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/arch/arm/ArmSemihosting.py
src/arch/arm/table_walker.cc
src/arch/arm/table_walker.hh
src/dev/arm/FlashDevice.py
src/dev/arm/RealView.py