The MIT Lisp Machine and its commercial versions from Symbolics, LMI and TI did this.<p>The memory was not bits and bytes, though. For example a Symbolics 3600 used 36bit words with all data being tagged. various number types, characters, strings, vectors, bitmaps, arrays, hash tables, lists made of cons cells, OOP objects, ...
That was used and checked on the processor level. That way software would not manipulate raw memory in some region, but actual data objects, knowing which space they use and what structure they have.<p>TI used 32bit Lisp processors in their later machines, while Symbolics went to 40bits to support larger address spaces.