```python
def render_data_size(total: int) -> str:
    if total < 0:
        raise ValueError("Negative count is not allowed")
    if not isinstance(total, int):
        raise ValueError("Count must be an integer")

    ladder = [("GiB", 1024**3), ("MiB", 1024**2), ("KiB", 1024), ("B", 1)]
    parts = []
    rest = total
    for suffix, size in ladder:
        count = rest // size
        if count > 0:
            parts.append(f"{count}{suffix}")
        rest -= count * size
    return " ".join(parts) or "0B"
```